0
0

More than 1 year has passed since last update.

enumが列挙型だから、enumのコンストラクタは暗黙的にプライベートになり、外部からのインスタンス化ができない件について

Posted at

:mag_right:enumが列挙型だからと言われてもピンとこない

enumは列挙定数を表現するために使用されることが多く、その定数はプログラム内で固定された値として利用される
新しいインスタンスを生成することができると、enumの特性を損なう可能性がある

そのため、enumのコンストラクタを暗黙的にプライベートにして、外部からのインスタンス化を禁止している

例えばこんなenumがあったとする

enum DayOfWeek {
    MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY;
}

enumは列挙定数を表現するために使用されることが多く、その定数はプログラム内で> 固定された値として利用される

例のenumは曜日を表現するものであり、定数は固定された値である

新しいインスタンスを生成することができると、enumの特性を損なう可能性がある

もし新しいインスタンス(曜日)を生成できてしまうと困るよねということ

そのため、enumのコンストラクタを暗黙的にプライベートにして、外部からのインス> タンス化を禁止している

新しい謎曜日が増えてしまうことを防ぐためにもこうなっている

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0