2014-10-03 86 views
0
public class Z3_2_Tester{ 

    public static void main(String[] args){ 

     char[] tablica = {'S','O','M','E','T','E','X','T'}; 
     Z3_2 z = new Z3_2(); 


     z.Z3_2(tablica); 
    } 
} 

class Z3_2{ 
    static char toUpperCase(char t) 
    { 
     //tablica = t; 
     System.out.println(t); 
    } 
} 
+0

當爲Stack Overflow格式化代碼時,請使用空格而不是製表符。 – 2014-10-03 20:48:03

+0

'z.Z3_2(tablica);'無效。你不能有一個與類名相同的方法 - 這是保留給構造函數的。你大概是指'Z3_2.toUpperCase(tablica);',但這也是無效的,因爲參數類型是錯誤的。 – 2014-10-03 20:50:38

+0

@HotLicks:你有一個名爲與類相同的方法是不正確的 - 你可以在Java中,這只是一個*非常糟糕的主意。 – 2014-10-03 20:52:17

回答

0

你應該能夠做到這一點主:

Z3_2.toUppeCase('s'); 

你可以做到這一點的方法是靜態的,並不需要一個對象調用它。

應該打印問題的

S 

第二部分是傳遞數組代替單個字符的。 您可以對此做兩件事。要麼在一個循環中調用它。或者讓該方法進入陣列。

方法1:

for(Character ch: tablica){ 
    Z3_2.toUppeCase(ch); 
} 

方法2:

static char toUpperCase(Character[] t) 
{ 
    for(Character ch: t){ 
     System.out.println(ch); 
    } 
} 
+0

謝謝你的回答。我真的很感謝你的幫助。我開始在java – bartek1982 2014-10-04 08:26:23

3

你目前有三個錯誤 - 一個不是錯誤,它只是一個非常糟糕的主意。其他的就是你目前遇到的情況。

首先,您有一個靜態方法,但您將它稱爲實例方法。不要這樣做 - 這意味着你的代碼不會做它看起來像它正在做的事情。你應該調用靜態方法只是通過類名:

Z3_2.toUpperCase(...); 

的第二個問題是,你的方法被調用toUpperCase,但你要調用它,如果它被稱爲Z3_2 ...這名字而不是方法。

第三個問題是您的方法的參數類型爲char,但您試圖傳入char[]。您可能需要更改參數類型,或者每次調用一個單一的char,例如

for (char c : tablica) { 
    Z3_2.toUpperCase(c); 
} 

此外:

  • 你需要讓你的toUpperCase方法返回的東西,因爲它有char
  • 返回類型,你幾乎可以肯定應該使用的toUpperCase的返回值main
  • 類名Z3_2沒有意義。名字很重要 - 仔細選擇它們。
+0

謝謝你的回答。我真的很感謝你的幫助。我在java開始 – bartek1982 2014-10-04 08:25:44

相關問題