Java初始化/对象声明

时间:2013-11-20 16:26:58

标签: java object initialization

我有一个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吗?

谢谢!

1 个答案:

答案 0 :(得分:3)

不,你不能这样做。如果要访问其字段,则必须创建MyObject的新实例。

除非你制作字段static,否则当然。

请注意,让您的字段public违反了封装。您应该将它们设为私有(或protected,如果合适)并使用getter和setter来提供访问权限。

旁注:

public MyObject(String i) {
    i = this.i;
}

这不会做你想要的。

您必须将参数i分配给字段变量i,而不是相反。

public MyObject(String i) {
    this.i = i;
}