请协助以下Java代码。
CLASS1:
我在Class1中有以下代码:
public String getnumber()
{
return this.number;
}
第2类:
我还有另一个Class2,其代码设置为:
Class1 cla = new Class1();
public String number_to_compute=cla.getnumber() // This is variable
第3类:
我有第三类
class3
,我在其中执行其他一些方法:Class1 class1 = new Class1();
Class2 class2 = new Class2();
public static void main(String args[])
{
System.out.println(class1.getumber());
System.out.println(class2.number_to_compute);
}
结果:
在上述问题中,
class1.getumber()
可以正常工作并给出正确的答案,其中class2.number_to_compute
的输出量null
为什么
class2.number_to_compute
是null
值? 最佳答案
在Class2
中,使用在number_to_compute
内部创建的cla
对象计算Class2
。 (它不使用Class1
中的Class3
对象)
在Class2的number
中正确设置cla
的值。
class Class1
{
String number;
public String getnumber()
{
return this.number;
}
}
class Class2
{
Class1 cla;
public String number_to_compute;
public Class2()
{
cla = new Class1();
cla.number = "1";
number_to_compute = cla.getnumber();
}
}
class Class3
{
Class1 class1;
Class2 class2;
public Class3()
{
class1 = new Class1();
class1.number = "2";
class2 = new Class2();
}
public static void main(String args[])
{
Class3 cl = new Class3();
System.out.println(cl.class2.cla.getnumber());
System.out.println(cl.class2.number_to_compute);
}
}
或者您可以使用在
Class1
中创建的Class3
对象 class Class1
{
String number;
public String getnumber()
{
return this.number;
}
}
class Class2
{
Class1 cla;
public String number_to_compute;
public Class2()
{
cla = new Class1();
cla.number = "1";
number_to_compute = cla.getnumber();
}
}
class Class3
{
Class1 class1;
Class2 class2;
public Class3()
{
class1 = new Class1();
class1.number = "2";
class2 = new Class2();
class2.cla = class1;
}
public static void main(String args[])
{
Class3 cl = new Class3();
System.out.println(cl.class2.cla.getnumber());
System.out.println(cl.class2.number_to_compute);
}
}
顺便说一句,use setters and getters设置实例变量总是好的。