2015-04-01 111 views
0

我試圖訪問一個INT = 10變量子類,但得到的錯誤:如何訪問子類中的父類整數變量?

Cannot make a static reference to the non-static field FreshJuice.a

以下是我的代碼。

class FreshJuice { 
    enum FreshJuiceSize{SMALL,MEDIUM,LARGE}; 
    FreshJuiceSize size; 
    int a = 10; 
} 

public class Index extends FreshJuice { 

    enum programmingLanguage{PHP,Java,Dotnet,HTML}; 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     System.out.println(FreshJuice.FreshJuiceSize.SMALL); 
     System.out.println(programmingLanguage.PHP); 
     System.out.println(FreshJuice.a); //getting error in this line 
    } 

} 

我想直接訪問子類中的FreshJuice類的int變量。我怎樣才能達到這個目標?

+1

你爲什麼抽象而隱祕?你有錯誤。準確告訴我們**你得到了什麼錯誤。但是,在你這樣做之前,檢查其他人是否有同樣的錯誤。 (提示:他們有。) – 2015-04-01 15:49:11

+0

你需要一個類的實例。這不是靜態的。 – Ria 2015-04-01 15:54:27

+0

我收到錯誤無法對非靜態字段FreshJuice.a進行靜態引用 – Jass 2015-04-01 15:58:25

回答

0

首先創建FreshJuice類的一個實例:

FreshJuice fj = new FreshJuice();

現在你可以訪問變量a

但是,如果您將變量設置爲private int a=10;那麼您仍然無法訪問該變量。這就是爲什麼使用getter和setter方法訪問這些私有變量是很好的做法。