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不能从静态上下文引用”。当我被困住时,请为我提供正确的编码。
答案 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;
}
}