2017-08-16 50 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不是靜態的,主塊是靜態塊,這就是它顯示錯誤的原因。不能從靜態上下文中引用非靜態字段。

相關問題