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

额?what?

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

#define

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

  • 项目地址:https://github.com/PEAKWEI/MyJavaCode
1. 开源中国:https://gitee.com/dgwcode/MyJavaCode
2. github: https://github.com/PEAKWEI/MyJavaCode 

1160484-20181106150517628-692403899.png

package Chinese.utils;包里内容

1160484-20181106150821143-1786630730.png


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

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

1160484-20181106151340167-1511927582.png

转载于:https://www.cnblogs.com/dgwblog/p/9915433.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值