zoukankan      html  css  js  c++  java
  • Java中文编程开发,让Java编写更改复杂

    额?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(学生 学生详情:学生列表){
    			控制台.标准换行输出(学生详情.获取姓名());
    			控制台.标准换行输出(学生详情.获取年龄());
    		}
    	}
    }
    
    
    
    • 效果: 与那张图片对比还是差不多

  • 相关阅读:
    AJAX请求 $.post方法的使用
    通过jQuery Ajax使用FormData对象上传文件
    iframe跨域访问
    js编码解码
    ajax头像上传
    无边框窗体和用户控件以及权限
    只开启一个窗体和进程以及多线程的操作
    通过一个窗体操作另一个窗体
    流和打印控件用法
    listview和简单的记事本操作
  • 原文地址:https://www.cnblogs.com/dgwblog/p/9915433.html
Copyright © 2011-2022 走看看