2013-08-03 127 views
0

我很好奇公共變量實際上做了什麼。我認爲他們在一個軟件包內部的所有類中工作,但顯然情況並非如此。我想知道如何將ADD和MULT變量從第一類傳遞到第二類。這是我的第一類代碼:Java公共變量多類

public class first { 
    public static int ADD = 0; 
    public static int MULT = 1; 
    public static int derp(int x, int x2, int a){ 
     int septor = 0; 
     if(a == 0){ 
      septor = x + x2; 
     } 
     if(a == 1){ 
      septor = x * x2; 
     } 
     return septor; 
    } 
} 

第二類:

public class second { 
    public static void main(String args[]){ 
     int y = first.derp(6,10,ADD); 
     System.out.println(y); 
    } 
} 
+0

你可以隨時編輯你的問題,所以不需要抱歉,去編輯它 – Piro

+0

我不明白你的問題。你在問如何訪問不同類中的公共變量? –

+0

好吧我修好了。 –

回答

1

必須使用其他類公共靜態字段是這樣的:

int y = first.derp(6,10,first.ADD); 
+1

你的意思是'public static'字段。 –

+0

是的,你是對的 –

+0

好吧有道理。 –

2

與往常一樣,你可以做的最好的事情是指docs

有時候,你想擁有所有對象通用的變量。 這是用靜態修飾符完成的。在其聲明中使用了靜態修飾符的字段稱爲靜態字段或類 變量。他們與班級相關聯,而不是與任何 對象關聯。每個類的實例在內存中的一個固定位置共享一個類變量,即 。任何對象都可以更改 類變量的值,但也可以在不使用 創建類的實例的情況下操作類變量。

類變量是由類名本身

引用有一個很好的例子,在那裏,跟着它,你就會知道,你應該寫first.ADD

也請按照Java Naming Convention並用First替換first。在你情況下,將first.ADD或者你甚至可以使用實例變量來訪問它們

Classname.variableName 

+0

當OP一起使用時,看起來像OP會混淆「public」可見性和「static」修飾符。 –

0

您可以使用像這樣訪問公共靜態字段。 但它通常是一個糟糕的編程習慣。就像這樣:

first obj = new first(); 
obj.ADD; 

但是,這是使用對象引用訪問靜態變量的不好的編程習慣。你也必須考慮如果你可以使你的靜態公共變量爲常量,使他們最終。這將確保訪問變量的其他類不會意外或故意修改它們。