见类定义的方法有两种:何时加载类变量?
//definition: 1
public class MyClass{
private MyObject obj = new MyObject();
private String str = "hello world";
// constructor
public MyClass(){
}
}
// definition: 2
public class MyClass{
private MyObject obj = null;
private String str = null;
// constructor
public MyClass(){
obj = new MyClass();
str = "HelloWorld";
}
}
我的问题是:加载的类变量时。他们如何加载?
它们的初始化是如何发生的?如果它们的初始化可能发生在定义1中,那么构造函数的目的是什么?
哪个是定义类的首选方式,为什么? C++/C#/ Java中的行为是否相同,或者它们的行为有所不同?
欢迎对上述任何澄清意见。
这ISN实际上不是语言不可知的,因为它可能取决于语言,甚至取决于语言的特定实现。 – Avi 2009-04-22 14:00:29