java为什么不设计成无论是否提供有参构造方法,都默认有隐藏的无参构造方法?

而要设计成一旦提供了有参构造方法,就没有了隐式的无参构造方法。无论什么情况下都有无参构造器岂不是更方便?

一只斗牛犬
浏览 867回答 5
5回答

宝慕林413681

依当前设计,程序员可以设计出只有有参构造,没有无参构造的类的对象,来防止利用无参构造创建出默认初始化其对象属性为null的对象,避免该对象该属性在之后出现空指针异常,该对象该属性也不用每次创建都进行空判断,因为从源头已经避免了。因为现实中存在该情况,所以java设计者如此设计,把主动权掌握在程序员手里。

慕容3067478

首先,每个java类都需要至少有一个构造方法,所以对于代码里没有构造方法的,就自动生成一个无参的如果程序员定义了构造方法,那么就满足每个java类都要至少有一个构造方法的条件了,java编译器就不浪费时间和空间去生成一个程序中不一定用得到的方法了

MM们

除了抽象类和接口不能实例化的例外情况,普通java类是有默认无参构造方法的,如果你自定义了有参构造方法,默认的无参构造方法就失效了,必须手动设置无参构造方法,才能有效。

蓝山帝景

定义类的时候如果没有定义任何有参数没参数的构造器,Java以为你忘记了就默认给你定义一个无参数的构造器,一旦出现了你定义的有参数的构造器,Java就把定义构造器的权利交给你了,于是,就没给你定义了默认的无参数的构造器
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java