访问在运行时设置的变量值

时间:2016-10-23 16:47:24

标签: java oop

以下是该方案:

我有3个类A类,B类和C类。现在我调用C中定义的方法,在类A中返回类型为String。我将返回值设置为A类中的另一个String。现在在B类中我正在制作A类的对象,并使用该对象调用A中的字符串集。如果你想知道执行,那么首先我调用在a中的C中定义的方法,然后调用B中的String。但是我在类B中获取字符串值为NULL。

C类

Class C{
 //method with return type as string
 public String getString(){
    return "Some String Here";
  }
}

A类

Class A{
public String s;
public void somemethod(){
C obj = new C();
s= obj.getString();
  }
}

B类

Class B(){
pubic void anothermethod(){
A obj = new A();
String ss = obj.s;
}
}

打印时,ss的值为null。当我打印s时,我得到正确的字符串。这是我如何从主要班级打电话

  1. 方法somemethod()来自A类
  2. 2.然后从B类中选择另一种方法(<)。

    很抱歉,如果我的问题有点愚蠢。

2 个答案:

答案 0 :(得分:2)

如果您的问题是关于如何在ss中获得空值,则您从未在somemethod的{​​{1}}上致电obj。每次调用anothermethod时,都会实例化一个新的anothermethod,其中字符串字段A从未被初始化并且仍为空。

答案 1 :(得分:0)

这是一个工作版本。见评论:

class A{

    private C c;
    public void somemethod(){
        c = new C();//better put is A constructor 
    }
    public String getS() {
        return c.getString();
    }

    public static void main(String args[]) {
        new B().anothermethod();
    }
}

class B{

    public void anothermethod(){
        A a = new A(); //better put is B constructor 
        a.somemethod();
        System.out.println( a.getS()); //output: Some String Here
    }
}

class C{

    //method with return type as string
    public String getString(){
        return "Some String Here";
    }
}