- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!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 繰返し