トップ 言語 Java アクセス修飾子、スコープ、定数 Javaのアクセス修飾子

Javaのアクセス修飾子―public、protected、private、デフォルトなど

public、protected、private、デフォルトなど。Javaのアクセス修飾子についてまとめています。

Javaのアクセス修飾子

Javaでは、オブジェクトの属性(変数)に不正な値が入らないように外部からのアクセスに制限をかけることが出来ます。 また変数だけでなくメソッドや、クラス全体に対してもアクセス制限をすることが出来ます。 これは、クラスを記述するときにクラスとメンバに割り当てるアクセス修飾子を使用します。

Java言語ではpublic、protected、privateという3つの明示的なアクセス修飾子と、 何も修飾子を指定しなかった場合に強制的に使われるデフォルト修飾子が用意されています。 なお、これらのアクセス修飾子はローカル変数には使用することが出来ません。

以下では、各アクセス修飾子についてまとめています。

public修飾子

public修飾子を使うと、Java要素のアクセス制限は最も緩くなります。 publicとして宣言したクラス、変数、メソッドは、Javaアプリケーション内のどこからでもアクセスできます。 ただし、一般的に、インスタンス変数をpublicとして宣言することはオブジェクト指向プログラミングの慣習としては勧められていません。 インスタンス変数は必ずメソッドを通じてアクセスすべきであるといわれています。

private修飾子

private修飾子を使うと、Java要素(クラスまたはクラスメンバ)のアクセス制限は最も厳しくなり、 自クラス以外は一切アクセス不可となります。private修飾子はクラスメンバにのみ適用できます。

protected修飾子

protected修飾子を使うと、同じパッケージ内のクラスから利用可能になります。 また、同じクラスを継承したすべてのサブクラスから利用可能になります。 異なるパッケージでもサブクラスからであれば利用可能となります。 なお、protected修飾子をクラス宣言に対して使用することは出来ません。

デフォルト修飾子

ある要素に何も指定しなかった場合、その要素のアクセスはデフォルトとみなされます。 デフォルト修飾子を表すキーワードはありません。 デフォルトの場合、同じパッケージ内のクラスから利用可能になります。

Javaのアクセス修飾子のアクセスレベル

Javaのアクセス修飾子のアクセスレベルを整理すると次のようになります。

各アクセス修飾子におけるアクセスレベル
アクセス修飾子クラスサブクラスパッケージその他のすべて
private × × ×
デフォルト × ×
protected ×
public

もっと知識を広げるための参考

戻る

スポンサーリンク

サイト内のページ

言語
C・C++ /HTML /Java /JavaScript /PHP /シェルスクリプト

開発環境
Ant /Bcc /Eclipse /gcc /gdb /g++ /JDK /JUnit /ZAP

技術・仕様
Ajax /CORBA /Java EE(旧称J2EE) /JNI

ライブラリ/Framework/CMS
jQuery /Lucene /MyBatis /RESTEasy /Spring /Struts /Seasar2 /WordPress

ITインフラ OSとミドルウェア
Linux /Windows /シェル
Apache/Tomcat /MySQL /Redis /Solr /vsftpd

ITインフラ PC 製品
ZOTAC

ITインフラ サーバー
Web公開サーバー構築

ITインフラ ネットワーク
プログラミング /機器 /構築

ITインフラ セキュリティ
公開サーバーのセキュリティ

SI
ホームページの作り方 /小さな会社のISMS

その他
IT用語 /ITスキル体系 /トレンド履歴

スポンサーリンク