分配值时不显示变量值

时间:2016-07-16 18:32:27

标签: java selenium-webdriver automation

请协助以下java代码。

CLASS1 : 我在Class1中使用了以下代码:

public String getnumber()
    {
          return this.number;
    }

CLASS2 : 我的另一个Class2类,代码设置为:

Class1 cla = new Class1();
public String number_to_compute=cla.getnumber() // This is variable

CLASS3 : 我是第三课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值?

3 个答案:

答案 0 :(得分:1)

问题在于,您分别在class1class2中为class3创建新对象,这就是为什么两个对象彼此不相关的原因..如果您想要{{ 1}}和class2具有相同的class3实例,您需要将class1创建为class1,这将始终提供singleton的单个对象实例。

尝试如下: -

class1

希望它有帮助...:)

答案 1 :(得分:0)

Class2中,您使用number_to_compute内的cla对象计算Class2。 (它不会在Class1

中使用Class3对象

正确设置Class2的numbercla的值。

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

答案 2 :(得分:0)

它对我来说很好。我看到的唯一需要添加的内容是static中的class1class2定义Class3关键字。见下文。

public class Class1
{
    String number = "1234";

    public String getnumber()
    {
        return this.number;
    }
}

public class Class2
{
    Class1 cla = new Class1();
    public String number_to_compute = cla.getnumber();
}

public class Class3
{
    static Class1 class1 = new Class1();
    static Class2 class2 = new Class2();

    public static void main(String args[])
    {
        System.out.println(class1.getnumber());
        System.out.println(class2.number_to_compute);
    }
}

运行时,输出

1234
1234