额?what?

在B站无意中看到一张图,无意间已发了自己的好奇,实际上我早就知道Java支持Unicode编码也就是可以使用中文命名规则,但是我们可以包装一下,玩一玩完全使用中文编码也未尝不可,但是经过尝试,比较困难,Java不支持运算符重载,也没有办法定义

#define

所以很大程度上限制了我们使用Java开发一款中文编程语言的意图;*(尽管这样做并没有什么意义)

1. 开源中国:https://gitee.com/dgwcode/MyJavaCode
2. github: https://github.com/PEAKWEI/MyJavaCode

package Chinese.utils;包里内容


public enum 布尔 {
假,真;
} public final class 工具 { public static boolean 不为空(Integer length) {
if(length==0) {
return false;
}else {
return true;
}
}
} public class 基础类型工具 { public static final boolean 假=false;
public static final boolean 真=true; public static 字符串 声明字符串(String 内容) {
return new 字符串(内容);
} public static 数字 声明数字(String 内容) {
return new 数字(内容);
} public static void main(String[] args) {
字符串 字符串 = 基础类型工具.声明字符串("搜索");
控制台.标准换行输出(字符串);
}
} public class 控制台 { public final static void 标准输出(字符串 内容) {
System.out.print(内容);
}
public final static void 标准输出(String 内容) {
System.out.print(内容);
} public final static void 标准换行输出(字符串 内容) {
System.out.println(内容);
}
public final static void 标准换行输出(Object 内容) {
System.out.println(内容);
} public final static void 标准换行输出(String 内容) {
System.out.println(内容);
} public final static void 标准换行输出(数字 内容) {
System.out.println(内容);
} }

包装的数字类


public class 列表<T> extends ArrayList<T>{ /**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/ private ArrayList<T> contents; public 列表() {
super();
this.contents = new ArrayList<>();
} public void 增加(T t) {
contents.add(t);
} public Integer 获取长度() {
return contents.size();
} @Override
public Iterator<T> iterator() {
return contents.iterator();
} @Override
public int size() {
return contents.size();
} @Override
public T get(int index) {
return contents.get(index);
} @Override
public String toString() {
return "列表 [contents=" + contents + "]";
} } public class 数字 {
private BigDecimal bDecimal; public 数字(String val) {
super();
this.bDecimal = new BigDecimal(val);
} public BigDecimal getbDecimal() {
return bDecimal;
} public void setbDecimal(BigDecimal bDecimal) {
this.bDecimal = bDecimal;
} @Override
public String toString() {
return bDecimal.toString();
}
} public final class 系统 { public static void 退出() {
System.exit(0);
} } public final class 字符串 {
private static String val; public static void 声明字符串(String val) {
字符串.val = val;
} public 字符串(String val) {
super();
字符串.val = val;
} public String getVal() {
return val;
} public void setVal(String val) {
字符串.val = val;
} @Override
public String toString() {
return val;
}
}

测试一下:

  • 实体代码

    这里要说明一下;本来这样是完全可以使用自己定义的所有类型的,但是由于在实际编码中在Main函数中并不是那么美观,所以这里还是使用java本身提供的基础类型。当然你可以选择自己去实现一下

public class 学生 { //private 字符串 姓名; private String 姓名; private Integer 年龄; public String 获取姓名() {
return 姓名;
} public void 设置姓名(String 姓名) {
this.姓名 = 姓名;
} public Integer 获取年龄() {
return 年龄;
} public void 设置年龄(Integer 年龄) {
this.年龄 = 年龄;
} @Override
public String toString() {
return "学生 [姓名=" + 姓名 + ", 年龄=" + 年龄 + "]";
}
}
  • 测试代码:

public class test { public static void main(String[] args) { 列表<学生> 学生列表 = new 列表<学生>(); 学生 学生1 = new 学生();
学生1.设置姓名("tomcat");
学生1.设置年龄(20); 学生 学生2 = new 学生();
学生2.设置姓名("apache");
学生2.设置年龄(33); 学生列表.增加(学生1);
学生列表.增加(学生2); if(!(工具.不为空(学生列表.获取长度())==基础类型工具.真)) {
控制台.标准换行输出(基础类型工具.声明字符串("列表中没有数据"));
系统.退出();
}
for(学生 学生详情:学生列表){
控制台.标准换行输出(学生详情.获取姓名());
控制台.标准换行输出(学生详情.获取年龄());
}
}
}
  • 效果: 与那张图片对比还是差不多

最新文章

  1. 【IOS】模仿&quot;抽屉新热榜&quot;动态启动页YFSplashScreen
  2. ReactNative——打包发布
  3. 安装ftp 服务器
  4. Ajax从服务器端获取数据---原生态Ajax
  5. CEPH RGW 设置 user default_placement为ssd-placement,优化100KB-200KB小文件性能,使用户创建的bucket对象放置到 SSD设备的Pool上。
  6. GridControl的常用操作
  7. Drag(拖拽)和Move(移动)两个脚本
  8. Mac上搭建ELK
  9. impala daemon启动失败
  10. org.hibernate.InvalidMappingException: Could not parse mapping document from resource com/domain/book.hbm.xml 联网跑一跑
  11. MySql修改root密码以及允许外网访问
  12. 2017[BUAA软工]第0次个人作业
  13. SFTP编辑linux文件 ——mac sublime text2 sftp
  14. python3 pandas DataFrame常见用法
  15. sftp本地上传和远程下载
  16. UI5-文档-4-Walkthrough
  17. am335x PDK3.0 设置为单网口配置记录
  18. emacs之配置etags
  19. Adobe Photoshop CC 2015安装激活教程
  20. [SoapUI] Context is per test case, every test case has a different context

热门文章

  1. ACM学习历程——ZOJ 3822 Domination (2014牡丹江区域赛 D题)(概率,数学递推)
  2. hdu 4372 Count the Buildings —— 思路+第一类斯特林数
  3. selenium webdriver frame操作,跳进跳出
  4. Amaze UI 框架
  5. linux使用JMETER进行分布式压力测试
  6. uva 512
  7. Jenkins搭建Nodejs自动化测试
  8. vs快捷键复制当前行
  9. [cf839d]Winter is here容斥原理
  10. 7、linux常见系统环境变量