[Java] 有没有必要将每个类的实例属性手动初始化呢?
问题描述:
比如:
[code="java"]
class Test {
private JButtol button;
private JPanel jpanel;
public Test() {}
}
[/code]
1、button和jpanel有没有必要手动初始化呢?
[code="java"]
private JButton button = null;
private JPanel jpanel = null;
[/code]
而如果初始化为:
[code="java"]
private JButton button = new JButton();
private JPanel jpanel = new JPanel();
[/code]
2、这样会不会在真正使用button和jpanel之前造成资源浪费了?
谢谢
答
如果你需要它们为null,就设为null,虽然没初始化的会自动null,但是从逻辑上说手动设一下更好。
如果你不需要它们指向具体的对象,当然不要new,这样肯定浪费。
最好的习惯是:在构造函数里会进行初始化的field则不要在声明时给值,不在构造函数里初始化的则在声明里给出一个初值(一般是null,0之类的)。
答
1, 没必要 根据JDK specification, 没初始化的类属性会自动置null
2, 会浪费的, 还是按需创建对象的好.