2016-08-24 6 views
-2

次のコードはコンパイルおよび実行には問題がありません。しかし、私の質問は、公共の使用は何ですか?int getValue(int bid) [NOT getValues(int bid)?どのように私はその方法を呼び出すのだろうか?Javaの列挙方法

package com.main; 
public class Bridge { 

    public enum Suites{ 
     CLUB(20), DIMOND(20), HEARTS(30), SPADES(40){ 
      public int getValue(int bid){ 
       return ((bid-1)*30)+40; 
      } 
     }; 
     private int points; 
     Suites(int points){ 
      this.points = points; 

     } 

     public int getValues(int bid){ 
      return points*bid; 
     } 

    } 

    public static void main(String[] args){ 
     System.out.println(Suites.CLUB.getValues(3)); 
     System.out.println(Suites.HEARTS.points); 
     System.out.println(Suites.values()); 
    } 

} 
 
The out put is : 
60 
30 
[Lcom.main.Bridge$Suites;@2a139a55 
+3

それは何の目的を持っていないし、反射による以外、呼び出すことはできません。それはおそらくタイプミスで、私はそのように閉じることに投票しています。 –

+0

英語では、カテゴリは「スーツ」と呼ばれ、値は「スペード」、「クラブ」、「ダイヤモンド」、および「ハーツ」です。そこにいくつかのタイプミスがあります。 – Andreas

答えて

0

SPADESに指定getValueメソッドのためにのみ使用するケースがあれば同じと方法であり、そして署名は、例えば、スイート列挙指定されていますこのような:

public class Test { 

    public enum Suites { 
     CLUB(20), 
     DIMOND(20), 
     HEARTS(30), 
     SPADES(40) { 
      @Override 
      public int getValue(int bid) { 
       return ((bid - 1) * 30) + 40; 
      } 
     }; 
     private int points; 

     Suites(int points) { 
      this.points = points; 

     } 

     public int getValue(int bid) { 
      return bid; 
     } 

     public int getValues(int bid) { 
      return points * bid; 
     } 

    } 

    public static void main(String[] args) { 
     for (Suites suite : Suites.values()) { 
      System.out.println(suite.name() + ": getValue: " + suite.getValue(1)); 
     } 
    } 
} 

この意志出力

CLUB: getValue: 1 
DIMOND: getValue: 1 
HEARTS: getValue: 1 
SPADES: getValue: 40 
関連する問題