java关键字new的理解

  • java的new的语法好理解,符合你的代码美学吗?
  • 如果让你设计一个new的语法,你会怎么设计?

1、new的实际语法模型

ClassName obj = new ClassName ([实参]);

不知有多少人和我一样不习惯且讨厌new后面跟着一个空格,反正至今仍然不能接受它。最初学习java语法时看的不是《java编程思想》,而是一本国人写的书,看到new时根本就没搞懂背后的机制。这里不得不建议大家尽量选外国人写的书,国人的书都是坑。于是,挖掘java过程中发现:new这个语法其实是可以做得更美的。不信?你看!

2、new的理想理论模型

ClassName obj = ClassName.ClassName ([实参])

  • 类加载器在类被第一次静态引用时加载.class文件到虚拟机,生成Class对象。
  • 构造方法是静态方法。
  • 非构造方法的其它静态方法的引用,以及静态字段的引用的语法都是“ClassName.xxx”。
综上所述,new的背后应该是类名.方法的形式。

3、new的理想简化模型

ClassName obj = ClassName.new ([实参]);

  • 为了减少冗余代码,可以用new代替构造方法名,而且也便于识别是否已经创建实例。
  • 从此就再也不用“(new Outer()).new Inner()”这种难以理解又不美观的代码了,用Outer.new().Inner.new()不是快哉?
  • 当然,上面总总只是作者的一时思考,感兴趣的同学可以每次见到new后脑补成理想简化模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值