🎯
【Java】クラス解説41・列挙型
列挙型
列挙型(enum)は、定数の集合を扱うための特殊なクラスです。列挙型を使うことで、コードの可読性と保守性が向上し、誤った値の使用を防ぐことができます。
また、列挙型の値である定数を列挙子と呼び、一般的に、その列挙子の記述方法は大文字で記述し、単語の区切りにはアンダースコア( _ )を使用します。
そして、各列挙子は、列挙型のインスタンスでもあります。
列挙型の定義方法と列挙子を出力するコード例
public class Main {
// Plants という列挙型を定義
enum Plants {
FUZI,
SAKURA,
MATHU
}
public static void main(String... args) {
// 列挙子を出力
System.out.println(Plants.FUZI);
}
}
出力結果はFUZIとなります。
列挙子を引数として利用するコード例
public class Main {
// 列挙型を定義
enum Plants {
FUZI,
SAKURA,
MATHU
}
public static void main(String... args) {
// printPlantsメソッドを呼び出し、実引数として列挙子を渡す
printPlants(Plants.FUZI);
}
// printPlantsメソッドを定義し、仮引数plantsに列挙子を受け取る
static void printPlants(Plants plants) {
if (plants == Plants.FUZI) {
System.out.println("フジ");
} else if (plants == Plants.SAKURA) {
System.out.println("サクラ");
} else if (plants == Plants.MATHU) {
System.out.println("マツ");
}
}
}
出力結果はフジとなります。
列挙型のコンストラクタの定義方法のコード例
public class Main {
// 列挙型を定義し、列挙子の引数を渡す
enum Plants {
FUZI("フジ"),
SAKURA("サクラ"),
MATHU("マツ");
// コンストラクタを定義し、列挙子の引数を受け取る
Plants(String name) {
System.out.println(name);
}
}
public static void main(String... args) {
// 列挙型を参照して、列挙子を初期化し、コンストラクタを実行させる
System.out.println(Plants.FUZI);
}
}
出力結果はフジ、サクラ、マツ、FUZIとなります。
列挙型のインスタンス変数を定義して、それを出力するコード例
public class Main {
// 列挙型
enum Plants {
FUZI("フジ"),
SAKURA("サクラ"),
MATHU("マツ");
// インスタンス変数を定義
private String name;
// コンストラクタ
Plants(String name) {
this.name = name;
// インスタンス変数を出力
System.out.println(this.name);
}
}
public static void main(String... args) {
// 列挙型を参照
System.out.println(Plants.FUZI);
}
}
出力結果はフジ、サクラ、マツ、FUZIとなります。
列挙型のメソッドを定義して、それにアクセスするコード例
public class Main {
// 列挙型
enum Plants {
FUZI("フジ"),
SAKURA("サクラ"),
MATHU("マツ");
// インスタンス変数
private String name;
// コンストラクタ
Plants(String name) {
this.name = name;
}
// インスタンス変数の値を返す getNameメソッド を定義
public String getName() {
return this.name;
}
}
public static void main(String... args) {
// 列挙型の getNameメソッド にアクセス
System.out.println(Plants.FUZI.getName());
}
}
出力結果はフジとなります。
列挙型の values メソッドを使って、全ての列挙子を出力するコード例
public class Main {
// 列挙型
enum Plants {
FUZI,
SAKURA,
MATHU;
}
public static void main(String... args) {
// 列挙型の values メソッドを使って、全ての列挙子を出力
for (Plants p : Plants.values()) {
System.out.println(p);
}
}
}
出力結果はFUZI、SAKURA、MATHUとなります。
列挙型の valueOf メソッドを使って、列挙子を出力するコード例
public class Main {
// 列挙型
enum Plants {
FUZI,
SAKURA,
MATHU;
}
public static void main(String... args) {
// 列挙型の valueOf メソッドを使って、列挙子を出力する
Plants p1 = Plants.valueOf("FUZI");
System.out.println(p1);
Plants p2 = Plants.valueOf("SAKURA");
System.out.println(p2);
Plants p3 = Plants.valueOf("MATHU");
System.out.println(p3);
}
}
出力結果はFUZI、SAKURA、MATHUとなります。
Discussion