Javaのenumのコンストラクタについて現役エンジニアが解説【初心者向け】
初心者向けにJavaのenumのコンストラクタについて解説しています。列挙型でコンストラクタを定義する際はアクセス修飾子をprivateにする必要があります。書き方と実装例をサンプルコードで見ていきましょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
Javaのenumのコンストラクタについて、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
Javaについてそもそもよく分からないという方は、Javaとは何なのか解説した記事を読むとさらに理解が深まるでしょう。
なお本記事は、TechAcademyのオンラインブートキャンプJava講座の内容をもとに作成しています。
今回は、Javaに関する内容だね!
どういう内容でしょうか?
enumのコンストラクタについて詳しく説明していくね!
お願いします!
目次
enumとは
enumとは列挙型と言われるもので複数の定義を一つにまとめることができる型のことです。
enumにはメンバ変数やメソッドを定義することができます。
まとめて定義できるため、可読性の向上などのメリットがあるといえるでしょう。
コンストラクタとは
コンストラクタとは、クラスのインスタンスを作成するときに実行される処理のことです。
最初に呼ばれる処理であるため、メンバ変数の初期化処理を行います。
enumのコンストラクタを実装する上での注意点
enumにもコンストラクタを実装する場合、注意点があります。
必ずアクセス修飾子をprivateにしなければいけません。
privateでない別のアクセス修飾子にした場合、コンパイルエラーになるので注意しましょう。
実際に書いてみよう
実際にenumのコンストラクタを使ったソースを書いてみましょう。
ソースコード
public class SampleClass { protected enum Person { Yamada(12, "男"), Suzuki(21, "女"), Tanaka(30, "女"), Sato(40, "男"), Takahashi(50, "女"); // メンバ変数 private int age; private String sex; // コンストラクタ private Person(int age, String sex) { this.age = age; this.sex = sex; } public int getAge() { return age; } public String getSex() { return sex; } } public static void main(String[] args) { for (Person p : Person.values()) { System.out.println(p + "さんの年齢は" + p.getAge() + "です"); System.out.println(p + "さんの性別は" + p.getSex() + "です"); } } }
実装結果
Yamadaさんの年齢は12です Yamadaさんの性別は男です Suzukiさんの年齢は21です Suzukiさんの性別は女です Tanakaさんの年齢は30です Tanakaさんの性別は女です Satoさんの年齢は40です Satoさんの性別は男です Takahashiさんの年齢は50です Takahashiさんの性別は女です
まとめ
この記事ではJavaのenumのコンストラクタについて解説しました。
コンストラクタを使うことによってenumをより便利に使うことができます。
privateで使うことに注意して実装しましょう。
執筆してくれたメンター
メンターSさん
システムエンジニアとしてこれまで行政システムや医療用システムの保守、開発に携わりました。 JavaやPython、PHP、Kotlinなど様々な言語での開発経験があります。 TechAcademyではJavaコース、Pythonコース、AIコースなど7コースを担当しています。 |
Javaのenumのコンストラクタがよく分かったので良かったです!
ゆかりちゃん、分からないことがあったら質問してね!
分かりました。ありがとうございます!
TechAcademyでは、初心者でも、JavaやServletの技術を使ってWebアプリケーション開発を習得できる、オンラインブートキャンプを開催しています。
また、現役エンジニアから学べる無料体験も実施しているので、ぜひ参加してみてください。