Java中文编程开发,让Java编写更改复杂

2018/11/06 15:14
阅读数 100

额?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(学生 学生详情:学生列表){
			控制台.标准换行输出(学生详情.获取姓名());
			控制台.标准换行输出(学生详情.获取年龄());
		}
	}
}


  • 效果: 与那张图片对比还是差不多

展开阅读全文
打赏
0
0 收藏
分享
加载中
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部