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

请问为什么是在构造方法中实例化而不是直接在声明时实例化?

这样写有什么好处?

正在回答

2 回答

你理解错了,构造方法中实例化是为了初始化对象的属性。例如:this.courses=new HashSet();这边的实例化的目的是为了后面调用student的courses属性。

而声明时实例化,是将对象实例化,然后再调用。例如:Student st=new Student();这边的是实例化Student的对象st,然后后面就可以调用st.courses属性。

如果构造器中不实例化这个courses,那你声明时就算将对象实例化了也无法调用。

两者的含义不同,无可比性。

5 回复 有任何疑惑可以回复我~
#1

sadfiy 提问者

非常感谢!
2017-02-23 回复 有任何疑惑可以回复我~
#2

dakela

请问有更通俗易懂的解释吗,大哥,我不是很理解的了
2017-03-24 回复 有任何疑惑可以回复我~
#3

居正w

为什么会被采纳,这回答是错的阿... 楼下的回答才是对的
2018-06-30 回复 有任何疑惑可以回复我~

执行顺序的问题,不过结果都是一样的

先不考虑继承关系,执行顺序为:

1.静态字段(执行且仅执行一次,线程安全)

2.静态构造方法(执行且仅执行一次,线程安全)

3.实例字段

4.实例构造方法


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问为什么是在构造方法中实例化而不是直接在声明时实例化?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信