Java enum(列挙型)に数値や文字列など色々な値を格納しておく




enumは便利ですよね。
でも、一緒に数値とか文字列とか持っておきたいことないですか?
こんなときはこちらw

enumに数値や文字列など色々な値を格納しておくサンプル

enumに音階の周波数をdouble、ふつーのドレミをStringで一緒に格納してみました。
ここから1つ取り出し。追加した情報を取り出してみます。
また、enumに作ったメソッドで1オクターブ高い周波数を計算してもらいます。

実行結果

enumに音階の周波数をdouble、ふつーのドレミをStringで一緒に格納してみました。
ここから1つ取り出し。追加した情報を取り出してみます。
また、enumに作ったメソッドで1オクターブ高い周波数を計算してもらいます。

サンプルの解説

enumの中にある定数の横に括弧でくくって、追加の情報を書くことができます。
ただ、このままでは使えないので、列挙した定数の下に括弧内のデータ型とコンストラクタを書きます。
ここまではお決まりのパターンですw
ついでに、1つおまけのメソッドを作りました。こんな感じで簡単なことはenumの中でできちゃいますね。

余談ですが、音階の周波数はこんなふうに計算できますw
なので、そもそも持っておく必要はないわけですが。。ねたってことで。

440Hz(基準ラ/A4) * 2^(n/12)
※n=基準ラから半音ずらした数(ピアノの鍵盤でいえば、黒鍵と白鍵含めて右or左にずらす)