2013-10-11 126 views
5

我在Java中定義了一個不使用類對象的函數。它僅用於將用戶的字符串輸入轉換爲整數。無論我在哪裏放置我得到的功能和錯誤。我想知道我該把它放在哪裏。這是在哪裏定義非類方法?

//Basically, when the user enters character C, the program stores 
// it as integer 0 and so on. 

public int suit2Num(String t){ 
    int n=0; 
    char s= t.charAt(0); 
    switch(s){ 
    case 'C' :{ n=0; break;} 
    case 'D': {n=1;break;} 
    case 'H':{ n=2;break;} 
    case 'S': {n=3;break;} 
    default: {System.out.println(" Invalid suit letter; type the correct one. "); 
      break;} 
    } 
return n; 
} 

回答

11

只需創建一個Util類(例如:ConvertionUtil.java),並把這種方法作爲static方法那裏。

public class ConvertionUtil{ 

public static int suit2Num(String t){ 
    --- 
} 

} 

用法:

int result = ConvertionUtil.suit2Num(someValidStirng); 
+0

注意:一個「好」的靜態方法不應該是指除通過輸入的任何其他。這樣你就不會影響你的代碼的測試能力。 –

8

你把它定義一個類裏面(一切都是在Java類),但要​​static

public class MyClass { 

    //Basically, when the user enters character C, the program stores 
    // it as integer 0 and so on. 
    public static int suit2Num(String t){ 
     int n=0; 
     char s= t.charAt(0); 
     switch(s) { 
      case 'C' :{ n=0; break;} 
      case 'D': {n=1;break;} 
      case 'H':{ n=2;break;} 
      case 'S': {n=3;break;} 
      default: { 
       System.out.println(" Invalid suit letter; type the correct one. "); 
       break; 
      } 
     } 
     return n; 
    } 
} 
0

我認爲你應該使用這樣的例外「

public class MyClass { 

//Basically, when the user enters character C, the program stores 
// it as integer 0 and so on. 
    public static int suit2Num(String t) throws InvalidInputException{ 
     int n=0; 
     char s= t.charAt(0); 
     switch(s) { 
      case 'C' :{ n=0; break;} 
      case 'D': {n=1;break;} 
      case 'H':{ n=2;break;} 
      case 'S': {n=3;break;} 
      default: { 
       throw new InvalidInputException(); 
      } 
     } 
     return n; 
    } 
} 

你也可以只使用你需要這樣的類的靜態方法:

package com.example; 

import static MyClass; 

public class MMMain{ 

public static void main(String[] args) { 
     try { 
      System.out.println(suit2Num("Cassandra")); 
      System.out.println(suit2Num("Wrong line")); 
     } catch(InvalidInputException e) { 
      e.printStackTrace(); 
     } 
    } 
}