アクセス修飾子とは、アクセスのレベルを決めるためのもの。
作ったプログラムを別のクラスなどで参照したいときに使用したり、アクセス制限をかけたりすることができる。
アクセス修飾子は4種類ある。
public
「public」はアクセス修飾子の1つ。
どのクラスやファイルからでもデータを参照することが可能。
赤で囲った「Java TakusanRenshu」と緑で囲った「MottoGanbare」がJavaプロジェクトと呼ばれるファイル名。
publicを付けることで、このJavaプロジェクト内の中ならどこからでもアクセスすることができる。
同じ枠の中なら、パッケージが違ってもアクセスが可能。
ただし「public」を付けても、赤で囲ったファイルから緑のファイルを参照したりすることはできない。
例1
KomeKomeのパッケージ内の「Student.java」というクラスに以下のコードを作る。
これは「Student」というクラスを自作したもので、そのクラスの中に「System.out.println(78);」と記入。
public static void mako() {
System.out.println(78);
}
}
同じパッケージ内の「MottoRenshu.java」というクラスからStudentクラスにアクセスして、上記のコードを参照する。
public static void main(String[] args) {
Student.mako();
}
}
実行すると「78」が表示される。
例2
パッケージが違う場合でも、同じJavaプロジェクトファイル内ならアクセス可能。
以下はRenshuパッケージの「access」クラスに作成したプログラム。
KomeKomeパッケージ内のStudentクラスから、「System.out.println(78);」を表示させるmakoメソッドを使用。
プログラムを実行すると「78」がちゃんと表示される。
public class access {
public static void main(String[] args) {
Student.mako();
}
}
protected
protectedはpublicとは違い、パッケージが違うとアクセスができない。
でもパッケージが違ってもサブクラスから参照することは可能。
サブクラスとは、ほかのクラスから引き継がれるもの。

オブジェクトと考え方は似ている。
動物(スーパークラス)⇒犬、猫、キツネなど
ちなみにサブクラスには「extends」が付けられる。
指定なし(デフォルト設定)
もし何も書かなければ、デフォルトとなる。
デフォルトとは、同じパッケージ内ならアクセス可能。
protectedはパッケージが違ってもサブクラスからならアクセスが可能だったが、こちらはパッケージが異なるだけでアクセス不可となる。
protectedよりアクセス可能範囲が少し狭くなる。
private
privateは他のアクセス修飾子と比べると、アクセス制限レベルが最も高い。
privateを使用すると、同じクラス内からしかアクセスができない。
同じパッケージ内にあっても、クラスが違えばそのデータは参照できないから注意。
アクセスレベルの順番
アクセス修飾子は以下の順番で制限度が高くなっていく。
※1がアクセス制限度が低く、4が制限度が高い
- public
- protected
- 指定なし(デフォルト)
- private
コメント