«

»

3月
22

[C#][Java]classのアクセス修飾子について

メソッドに対してのアクセス修飾子ではなく、クラスに対してつけるアクセス修飾子についてC#とJAVAを比較してみた。

アクセス修飾子C#Java
public制限なし。制限なし。
internal同アセンブリ内から参照可能。当該の修飾子なし(言語レベルでの同機能はない)。
無印internalをつけた場合と同様。同じパッケージ内から参照可能。
protectedトップレベルでは修飾できない。アウタークラスもしくはアウタークラスの継承クラスから参照可能。
internal protectedprotectedと同様だが同アセンブリ内でのみ参照可能。当該の修飾子なし。
privateトップレベルでは修飾できない。アウタークラスから参照可能。

インナークラスはC#の場合、Javaでいうstaticなインナークラスになる。
さらに紛らわしいのはc#ではstaticはモノステートパターンのようなインスタンスを持たないクラスを宣言するときの修飾子として使われる。

コメントを残す

メールアドレスは公開されません

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>