
Javaの使い方
目次
Javaでenumを使う方法
Javaにおけるenumの使い方を見ていきましょう。まず、「Java」とはどのようなプログラミング言語なのでしょうか。また、「enum」についても順に説明します。実際のソースコードを交えてenumの説明をしますので、ぜひ参考にしてみてください。
Javaとは?
Javaとは、Web上やスマートフォンなどのアプリケーションをただ作るだけではなく、使いやすさ・速度・汎用性・移植性があり、セキュリティのあるアプリケーションを作ることができるプログラミング言語です。もちろん他の言語でも1つ1つを満たす言語は多くあります。しかしこれらを同時に満たしつつ古くからある言語は多くはありません。Javaを習得しているプログラマーは多くいます。これはプログラミング言語を学ぶ際の選択肢に入れる理由になるのではないでしょうか。この記事では、そのようなJavaにおけるenumの使い方を見ていきます。
enum(列挙型)とは?
enumとは「列挙型」を意味します。単純な説明としては「定数」と表現できます。この列挙型は特定の値のみをもつ型で、かつその値はプログラマーが任意に定義することができる型です。この列挙型を定義するにはenumキーワードを使って宣言していきます。今回は野球・サッカー・バスケ・テニス・バトミントンといった値をもつSportというenumを例に定義します。
enumの設定方法
Sportというenumの定義例は以下です。これはSport.javaファイルの例です。
1 2 3 |
package jp.co.aaa;public enum Sport { BASEBALL,SOCCER,BASKETBALL,TENNIS,BADMINTON } |
このクラスをコンパイルするとSport.classファイルが生成されます。
1 2 3 4 5 6 7 8 9 10 |
//一部抜粋 public final enum jp.co.aaa.Sport { public static final enum jp.co.aaa.Sport BASEBALL; public static final enum jp.co.aaa.Sport SOCCER; public static final enum jp.co.aaa.Sport BASKETBALL; public static final enum jp.co.aaa.Sport TENNIS; public static final enum jp.co.aaa.Sport BADMINTON; public static jp.co.aaa.Sport[] values(); public static jp.co.aaa.Sport valueOf(java.lang.String arg0); } |
values(), valueOf()というメソッドが追加されています。これらはenumキーワードをつけたことでJavaのコンパイラによって付与されます。次はこれらのメソッドの使い方を見ていきます。
列挙型[] values()
values()メソッドは定義した全ての列挙型を配列で返します。使い方は以下のように定義したenumを通じて使用できます。
1 2 3 4 5 6 7 |
public class EnumPrintSample { public static void main(String[] args) { for(Sport sport : Sport.values()) { System.out.println(sport); } } } |
上記の使い方で以下の出力を得られます。
1 2 3 4 5 |
BASEBALL SOCCER BASKETBALL TENNIS BADMINTON |
列挙型 valueOf()
valueOf(String name)メソッドは引数で指定された列挙型を返します。使い方は以下のように定義したenumを通じて使用できます。
1 2 3 4 5 6 |
public class EnumPrintSample { public static void main(String[] args) { Sport favorite = Sport.valueOf("BASEBALL"); System.out.println(favorite); } } |
上記の使い方で以下の出力を得ることができます。
1 |
BASEBALL |
switch文での列挙型判定
基本的な宣言、メソッドを見てきたので実際の分岐処理で使い方を見ていきます。Sportを例にすると以下のように分岐できます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
public class EnumPrintSample { public static void main(String[] args) { Sport favorite = Sport.valueOf("BASEBALL"); switch(favorite) { case BASEBALL: case SOCCER: case BASKETBALL: System.out.println(favorite + "はラケットを使いません"); break; case TENNIS: case BADMINTON: System.out.println(favorite + "はラケットを使います"); break; } } } |
上記の使い方で以下の出力を得られます。
1 |
BASEBALLはラケットを使いません |
enumのコンストラクタ、変数、メソッド定義
enumも任意のコンストラクタ、変数、メソッドを定義することができます。この使い方を見ていきましょう。先程のSportを以下のように変更していきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
public enum Sport { BASEBALL(1),SOCCER(2),BASKETBALL(3),TENNIS(4),BADMINTON(5); private int code; //スポーツコード /** * コンストラクタ * @param code スポーツコード */ Sport(int code){ this.code = code; } public int getCode() { return code; } } |
それぞれのスポーツにcodeというint型の値を持たせることができるようになりました。これにより以下のように定数としてより扱いやすくなります。
1 2 3 4 5 6 |
public class EnumPrintSample { public static void main(String[] args) { Sport favorite = Sport.BASEBALL; System.out.println(favorite + "のコード値:" + favorite.getCode()); } } |
上記の使い方で以下の出力を得られます。
1 |
BASEBALLのコード値:1 |
enumの使い方まとめ
ここまで、enumの使い方を見てきましたが、いかがでしたか。ここでは、enumの使い方についてのポイントをまとめました。
- enumは任意の値で定数を定義できる
- values()、valueOf()といったメソッドが追加される
- switch文などの分岐処理に使える
- コンストラクタ、変数、メソッドを定義できる
Javaにおけるenumの基本的な使い方を知ろう!
この記事では、Javaにおけるenumの基本的な使い方を見てきましたが、いかがでしたでしょうか。ぜひenumを定義して使ってみましょう。ここでは紹介しきれなかったメソッドや使い方に触れることで、よりenumの理解を深めていくことができます。Javaは多くのデバイスで利用されています。業務のWebアプリケーションでも、スマートフォンアプリなどでも活躍の場があります。今までJavaを使ったことがない人も、この機会にぜひ学習してみてください。また、Javaの最新バージョンは14です。(2020年5月27日時点)様々な新機能が出ているため、すでに使ったことがある人も、もう一度おさらいしてみてはいかがでしょうか。