如何访问另一个类的变量并将其存储在当前类的变量中

时间:2017-08-16 12:43:06

标签: java

class ClassB {
   int c=0;
   public static void main(String [] args) {
      ClassA cla = new ClassA();

      c=cla.getValue();
   }
}

class ClassA {
   int value = 0;
  public int getValue() {
     ClassA obj=new ClassA(); 
     return obj.value;
  }
}

我希望在类B的'int c'中使用ClassA的'int value'。上面的代码显示错误“非静态变量c不能从静态上下文引用”。当我被困住时,请为我提供正确的编码。

3 个答案:

答案 0 :(得分:0)

当然,如果没有实例化包含此方法fisrt的对象,则无法调用非静态方法,要么将所有方法和字段设为静态,要么实例化类:

class ClassB {
   static int c=0;
   public static void main(String [] args) {
      ClassB clb = new ClassB(); 
      c= clb.getvalueA();
   }
   public int getvalueA(){
      ClassA cla = new ClassA();      
      return cla.getValue();
   }
}

class ClassA {
   int value = 0;
   public int getValue() {
      return value;
   }
}

答案 1 :(得分:0)

B类中的变量c不是静态的,而主要块是静态块,这就是它显示错误的原因。您不能从静态上下文中引用非静态字段。

答案 2 :(得分:-1)

public class Main {
  public static void main(String[] args) {
    int retVal;

    TestClass a = new TestClass(20);
    retVal = a.value;

    System.out.println("Value of a: "+retVal);
  }
}
class TestClass {
  int value;
  public TestClass(int value) {
    this.value = value;
  }
  public int getValue() {
    return this.value;
  }
}