2013-10-11 18 views
5

Java'da sınıf nesnesini kullanmayan bir işlevi tanımlıyorum. Sadece string girişini kullanıcıdan bir tamsayıya dönüştürmek için kullanılır. Fonksiyonu nereye koyduğum önemli değil, hata alıyorum. Nereye yerleştirmem gerektiğini merak ediyordum. ve orada static yöntemi olarak bu yöntemi koyun: BuradaSınıf dışı bir yöntem nerede tanımlanır?

//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; 
} 

cevap

11

Sadece bir Util sınıfını (ConvertionUtil.java ex) oluşturmaktır.

public class ConvertionUtil{ 

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

} 

Kullanımı: Bir sınıf içinde tanımlamak

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

Not: Bir "iyi" statik yöntem geçti girdiler dışında bir bakın olmamalıdır. Bu şekilde kodunuzun test yeteneğini etkilemeyeceksiniz. –

8

(herşey Java bir sınıftır), ancak bunu static olun:

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

Kullanabileceğin gerektiğini düşünüyorum istisna bunun gibi "

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; 
    } 
} 

Ve böyle gerek sınıfların yalnızca statik yöntemleri kullanabilirsiniz:

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(); 
     } 
    } 
} 
İlgili konular