Quantcast
Channel: 質問!ITmedia 新着質問(Java/253)
Viewing all articles
Browse latest Browse all 2439

Javaのアクセス修飾子は4つで足りる?

$
0
0
Javaに、アクセス修飾子ってあるじゃん。デフォルトも含めて4つだけですけど、これで事足りますか?もう1つ加えて5つにすると、使いやすいかなと個人的に思うのですが。 何を追加したいかというと、「同パッケージ内のサブクラスのみアクセス可」です。何か名前をつけるなら familyです。サブクラスは同パッケージに作ることもあれば別パッケージに作ることもあって、2通り考えられるます。そのうち前者を、スーパークラスと血縁関係のある家族のように特別扱いします。家族の絆があればアクセス可としよう、そんな感じです。 現状の4つは (厳しい) 1.private 2.デフォルト 3.protected 4.public (緩い) 追加するfamilyは、1と2の間に位置します。 privateだと自クラスのみ、家族も排除。 デフォルトだと、同パッケージ内ならサブクラス(家族)に加えそれ以外のクラスもアクセス可、別パッケージからはサブクラスでも排除です。 familyに需要あると思うのですが、ドーかしら? 例えば、同パッケージ内にガンダムclassと鉄腕アトムclassとドラえもんclassを作ります。いずれもロボットですから、その共通点を抽出したロボットclassを作っておいて、後からそれをextendsで継承し、差分だけプログラミングします。こういうとき、カプセル化とかbeanの方針でロボットclassのフィールドにはprivateを付けたいところですが、それ付けちゃうと継承するときにsetterもgetterも機能しません。 かといって、privateをデフォルトやprotectedに変えると、緩すぎだと思う。familyがちょうど良いと思う。

Viewing all articles
Browse latest Browse all 2439

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>