トップ 一覧 ping 検索 ヘルプ RSS ログイン

SJC-P 型と変数の変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!!SJC-P 型と変数
!!列挙
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/language/enums.html

::メンバとして宣言
 public class EnumTest1 {
     enum DayOfWeek { SUNDAY, MONDAY, THUESDAY, WEDNESDAY, 
                      THURSDAY, FRIDAY, SATURDAY }
     
     public static void main(String[] args) {
         DayOfWeek dow = DayOfWeek.FRIDAY;
         System.out.println(dow);
     }
 }
::別クラスとして宣言
*列挙値にコンストラクタをもてる
*列挙に動作を追加できる
*switch ステートメントで利用できる
*values() static メソッドで、列挙値の配列を取得できる
 public enum DayOfWeek {
     SUNDAY   ("日"), 
     MONDAY   ("月"), 
     THUESDAY ("火"), 
     WEDNESDAY("水"), 
     THURSDAY ("木"), 
     FRIDAY   ("金"), 
     SATURDAY ("土");
     
     private final String youbi;
     // コンストラクタ
     DayOfWeek(String youbi) {
         this.youbi = youbi;
     }
     public String toJpString() {
         return this.youbi;
     }
 }

 public class EnumTest2 { 
     public static void main(String[] args) {
         DayOfWeek dow = DayOfWeek.FRIDAY;
         // 列挙に動作を追加できる
         System.out.println(dow.toJpString() + "曜日");
 
         // switch ステートメントで利用できる
         switch(dow) {
         case THUESDAY:
         case FRIDAY:
             System.out.println(dow.toJpString() + "曜日は、燃えるごみの日です。");
             break;
         default:    
         }
         
         // values() static メソッドで、列挙値の配列を取得できる
         DayOfWeek[] weeks = DayOfWeek.values();
         for (int i=0; i<weeks.length; i++) {
             System.out.print("(" + weeks[i].toJpString() +") ");
         }
         
     }
 }
::列挙定数ごとに異なる動作をさせる
*列挙型でメソッドの抽象メソッドを宣言
*定数ごとにオーバーライド

 public enum DayOfWeek {
     SUNDAY   ("日"){
         String garbageCollect(){return "収集はありません";}
     }, 
     MONDAY   ("月"){
         String garbageCollect(){return "収集はありません";}
     },  
     THUESDAY ("火"){
         String garbageCollect(){return "燃えるごみの日です";}
     },  
     WEDNESDAY("水"){
         String garbageCollect(){return "資源ごみの日です";}
     },  
     THURSDAY ("木"){
         String garbageCollect(){return "燃えないごみの日です";}
     },  
     FRIDAY   ("金"){
         String garbageCollect(){return "燃えるごみの日です";}
     },  
     SATURDAY ("土"){
         String garbageCollect(){return "収集はありません";}
     } ;
 
     private final String youbi;
     // コンストラクタ
     DayOfWeek(String youbi) {
         this.youbi = youbi;
     }
     public String toJpString() {
         return this.youbi;
     }
     // 抽象メソッド
     abstract String garbageCollect();
 }

 public class EnumTest2 { 
     public static void main(String[] args) {
         DayOfWeek dow = DayOfWeek.THUESDAY;
         
         System.out.println(
                 dow.toJpString() + "曜日は" + 
                 dow.garbageCollect());
         
     }
 }
::内容を列挙
values()メソッドを使用
 public class EnumTest4 { 
     public static void main(String[] args) {
     	DayOfWeek[] weeks = DayOfWeek.values();
     	for (DayOfWeek week : weeks) {
     		System.out.println(week);
     	}
     }
 }

{{amazon 4822282775}}
----
{{include_html banner_html, "!SJC-P"}}
*SJC-P ジェネリックス 多態性
*SJC-P
*SJC-P 書式
*SJC-P 並行性
*SJC-P ジェネリックス 型パラメータ
*SJC-P チェックポイント
*SJC-P 日付と数値
*SJC-P コンストラクタ
*SJC-P 共変戻り値
*SJC-P 可変長引数
*SJC-P 列挙型
*SJC-P 静的インポート
*SJC-P インナークラス
*SJC-P 直列化
*SJC-P ストリーム解析(Scanner)
*SJC-P ファイル操作
*SJC-P オートボクシング
*SJC-P 例外
*SJC-P 繰返し