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

Wesley13
• 阅读 583

额?what?

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

#define

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

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

package Chinese.utils;包里内容

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

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

    }

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

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

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
3个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
java编码问题总结
对于Java,由于默认的编码方式是UNICODE,所以用中文也易出问题,常见的解决是:Strings2newString(s1.getBytes(“ISO88591”),”GBK”);1、utf8解决JSP中文乱码问题一般说来在每个页面的开始处,加入:<%@pagelanguage"java"contentTyp
Wesley13 Wesley13
3年前
Java爬虫之JSoup使用教程
title:Java爬虫之JSoup使用教程date:201812248:00:000800update:201812248:00:000800author:mecover:https://imgblog.csdnimg.cn/20181224144920712(https://www.oschin
Stella981 Stella981
3年前
Netty之缓冲区ByteBuf解读(一)
!(https://oscimg.oschina.net/oscnet/up6de4d71f462d9846befe00ec6505125a928.JPEG)\Netty在数据传输过程中,会使用缓冲区设计来提高传输效率。虽然,Java在NIO编程中已提供ByteBuffer类进行使用,但是在使用过程中,其编码方式相对来说不太友好,也
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
京东云开发者 京东云开发者
11个月前
Java服务总在半夜挂,背后的真相竟然是... | 京东云技术团队
最近有用户反馈测试环境Java服务总在凌晨00:00左右挂掉,用户反馈Java服务没有定时任务,也没有流量突增的情况,Jvm配置也合理,莫名其妙就挂了