在B站无意中看到一张图,无意间已发了自己的好奇,实际上我早就知道Java支持Unicode编码也就是可以使用中文命名规则,但是我们可以包装一下,玩一玩完全使用中文编码也未尝不可,但是经过尝试,比较困难,Java不支持运算符重载,也没有办法定义
define 所以很大程度上限制了我们使用Java开发一款中文编程语言的意图;*(尽管这样做并没有什么意义) 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 test { public static void main(String[] args) { 列表<学生> 学生列表 = new 列表<学生>(); 学生 学生1 = new 学生(); 学生1.设置姓名("tomcat"); 学生1.设置年龄(20); 学生 学生2 = new 学生(); 学生2.设置姓名("apache"); 学生2.设置年龄(33); 学生列表.增加(学生1); 学生列表.增加(学生2); if(!(工具.不为空(学生列表.获取长度())==基础类型工具.真)) { 控制台.标准换行输出(基础类型工具.声明字符串("列表中没有数据")); 系统.退出(); } for(学生 学生详情:学生列表){ 控制台.标准换行输出(学生详情.获取姓名()); 控制台.标准换行输出(学生详情.获取年龄()); } } }效果: 与那张图片对比还是差不多