我有一个 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");
如果我要检查它的值,如果我不初始化它,或者在其中设置一个字段足以使其不为空,那么该对象是否将为空?
谢谢!
最佳答案
不,你不能那样做。如果您想访问其字段,则必须创建 MyObject
的新实例。
当然,除非您将字段设为静态
。
请注意,将字段设为 public
会违反封装性。您应该将它们设置为私有(private)(或 protected
,如果合适的话)并使用 getter 和 setter 来提供访问权限。
旁注:
public MyObject(String i) {
i = this.i;
}
这不会达到您想要的效果。
您必须将参数 i
分配给字段变量 i
,而不是相反。
public MyObject(String i) {
this.i = i;
}
关于Java 对象的初始化/声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20101396/