Java初始化/对象声明
我有一个MyObject类型的对象obj,我声明了它的一个实例Java初始化/对象声明,java,object,initialization,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的情况下
MyObject obj;
但是,我不初始化它。MyObject的类类似于:
public class MyObject {
public String i;
public String j;
public MyObject(String i) {
i = this.i;
}
}
现在,我想设置j的值。所以我说:
obj.j = "Hello";
我可以在没有初始化obj的情况下执行此操作吗?i、 e.不言而喻:
obj = new MyObject("My i");
如果我检查这个对象的值,如果我没有初始化它,或者在其中设置一个字段足以使它不为null,那么这个对象会为null吗
谢谢 不,你不能那样做。如果要访问其字段,必须创建
MyObject
的新实例
当然,除非您将字段设置为静态
请注意,将字段公开
会违反封装。您应该将它们设置为私有的(或受保护的
,如果合适的话),并使用getter和setter来提供访问
旁注:
public MyObject(String i) {
i = this.i;
}
这不会满足你的要求
必须将参数i
分配给字段变量i
,而不是相反
public MyObject(String i) {
this.i = i;
}
不,你不能那样做。如果要访问其字段,必须创建MyObject
的新实例
当然,除非您将字段设置为静态
请注意,将字段公开
会违反封装。您应该将它们设置为私有的(或受保护的
,如果合适的话),并使用getter和setter来提供访问
旁注:
public MyObject(String i) {
i = this.i;
}
这不会满足你的要求
必须将参数i
分配给字段变量i
,而不是相反
public MyObject(String i) {
this.i = i;
}
不,你不能那样做。如果要访问其字段,必须创建MyObject
的新实例
当然,除非您将字段设置为静态
请注意,将字段公开
会违反封装。您应该将它们设置为私有的(或受保护的
,如果合适的话),并使用getter和setter来提供访问
旁注:
public MyObject(String i) {
i = this.i;
}
这不会满足你的要求
必须将参数i
分配给字段变量i
,而不是相反
public MyObject(String i) {
this.i = i;
}
不,你不能那样做。如果要访问其字段,必须创建MyObject
的新实例
当然,除非您将字段设置为静态
请注意,将字段公开
会违反封装。您应该将它们设置为私有的(或受保护的
,如果合适的话),并使用getter和setter来提供访问
旁注:
public MyObject(String i) {
i = this.i;
}
这不会满足你的要求
必须将参数i
分配给字段变量i
,而不是相反
public MyObject(String i) {
this.i = i;
}
您的构造函数语句是向后的。它应该说this.i=i代码>构造函数语句是向后的。它应该说this.i=i代码>构造函数语句是向后的。它应该说this.i=i代码>构造函数语句是向后的。它应该说this.i=i代码>