2017-08-16 45 views
-1
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; 
    } 
} 

我想在类“int c”中的ClassA的“int value”。上面的代码显示错误“non静态变量c不能从静态上下文中引用“。当我卡住时,请为我提供正确的编码。如何访问另一个类的变量并将其存储在当前类的变量中

+0

@sayan看到我的答案。 –

回答

0

当然,监守你不能调用非静态方法没有实例包含此方法最前一页的对象,无论是让所有的方法和字段静态或实例化类:

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
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; 
    } 
} 
+0

解释你的代码在做什么会很好... – HelderSepu

0

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

相关问题