我有一个MyObject类型的对象obj,我声明了一个。的实例。
MyObject obj;
但是,我没有初始化它。 MyObject的类看起来像:
public class MyObject {
public String i;
public String j;
public MyObject(String i) {
i = this.i;
}
}
所以现在,我想设置j的值。所以我说:
obj.j = "Hello";
我可以在没有初始化obj的情况下执行此操作吗?即不说:
obj = new MyObject("My i");
如果我检查它的值,如果我没有初始化它,或者在其中设置一个字段足以使它不为空,那么这个对象是null吗?
谢谢!
答案 0 :(得分:3)
不,你不能这样做。如果要访问其字段,则必须创建MyObject
的新实例。
除非你制作字段static
,否则当然。
请注意,让您的字段public
违反了封装。您应该将它们设为私有(或protected
,如果合适)并使用getter和setter来提供访问权限。
旁注:
public MyObject(String i) {
i = this.i;
}
这不会做你想要的。
您必须将参数i
分配给字段变量i
,而不是相反。
public MyObject(String i) {
this.i = i;
}