2016-01-26 86 views
0

我試圖實踐類方法,因爲我對JAVA很陌生。在我的完整程序中,我使用了其他全局變量,並且在我的其他方法中工作正常。我的問題是我如何獲得公共字符串y在我的isNum()方法的參數內部工作,以便在任何方法內我可以使用isNum(y);它現在是字符串y的方式只在isNum的範圍內,但我希望y在isNum的參數內部是全局的並且在它內部。儘可能簡單的答案非常感謝你。JAVA如何將全局變量放入函數參數中?

public static String y; 
public static boolean isNum(String y){ 

for(int i = 0; i < y.length(); i++){ 

if(!(y.charAt(i) >= 48 && y.charAt(i) <= 57)){ 

    return false; 
    } 
} 

return true; 

} 

我想在此循環中使用isNum並將x的值傳遞給y。 我知道x是一個int,y是一個字符串。我將如何做這項工作?

 x = input.nextInt(); 

     if(isNum(y){ 
     while(x <=0 || x > 3){ 
      System.out.println("Choose a correct gear number: "); 

      x = input.nextInt(); 
     } 
     switch(x){ 
      case 1: 
      System.out.println("You're in Gear 1"); 
       break; 
      case 2: 
      System.out.println("Gear 2"); 
       break; 

      case 3: 
      System.out.println("Gear3"); 
     } 
     } 

    } 
+1

java沒有函數,也沒有全局變量。 – Stultuske

回答

2

如果你想isNum訪問靜態變量y,用類名限定它 - ClassName.y

當您在方法內寫入非限定變量名稱y時,局部變量y將隱藏static變量的同名名稱。

編輯:重新讀你的問題後,我不知道你的isNum方法甚至需要有y參數。如果您希望該方法使用靜態變量y,則可以簡單地將其簽名更改爲public static boolean isNum()並保持方法體不變。

2

全局變量不必放入函數中,只需直接使用它們!
在一個類中,直接使用它們。
在另一個班級中,請使用ClassName.var

0

,目前還不清楚是什麼你正在嘗試做.... 如果函數總是檢查「全局」變量y是一個數字,你應該簡單地創建一個這樣的類:

public class global 
{ 
    private static String y; 

    public static boolean isNum(){...}//no need to get y as parameter 
} 

你應該注意的是Java是面向對象的,所以你不能僅僅擁有一個全局變量......它應該是一個靜態變量,它有一個靜態方法來處理變量