为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只斗牛犬 2019-03-20 18:15:49
而要设计成一旦提供了有参构造方法,就没有了隐式的无参构造方法。无论什么情况下都有无参构造器岂不是更方便?
查看完整描述

5 回答

?
宝慕林413681

TA贡献1条经验 获得超0个赞

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

查看完整回答
反对 回复 2020-02-05
?
慕容3067478

TA贡献1773条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-04-22
?
MM们

TA贡献1886条经验 获得超2个赞

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


查看完整回答
反对 回复 2019-04-22
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

定义类的时候如果没有定义任何有参数没参数的构造器,Java以为你忘记了就默认给你定义一个无参数的构造器,一旦出现了你定义的有参数的构造器,Java就把定义构造器的权利交给你了,于是,就没给你定义了默认的无参数的构造器


查看完整回答
反对 回复 2019-04-22
  • 5 回答
  • 0 关注
  • 866 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信