请协助以下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_computenull值?

最佳答案

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设置实例变量总是好的。

09-28 12:59
查看更多