アクセス修飾子(public・protected・private)

Javaには、アクセス修飾子と呼ばれる、メソッドやメンバ変数、クラスなどにアクセス権を指定するしくみが備わっています。

アクセス権を指定することで、想定外の操作等によるデータ改ざんを防ぐことができ、より安全なソースコードを作成することができます。

アクセス修飾子の種類
public       全てのクラスからアクセス可能
protected  同じクラス内、同じパッケージ、サブクラスからアクセス可能
なし           同じクラス内、同じパッケージからアクセス可能
private     同じクラス内のみアクセス可能

表現を変えると、
public は「アクセス制限なし」
protected は「他ファイル・他クラスからのアクセスをプロテクトする」
private は「自クラスからのアクセスしか許さない」
という意味になります。

また、アクセス修飾子をつけない場合(なし)も意味を持ちます。
アクセス修飾子をつけない場合は「同じパッケージに属するクラスからしかアクセスできない」という意味になります。

パッケージとは
複数のクラスを一つのまとまりとしてまとめたもの


Javaはクラスを一つのJavaファイルにまとめて定義することができますが、一つのJavaファイルにはpublic修飾子を記述したクラスは一つしか定義できません。

試しに下記のようなサンプルをコンパイルしてみてください。

public class SampleMain{
public static void main(String[] args){
Sample smp = new Sample();
System.out.println(smp.getResultString() + "");
}
}

public class Sample
{
public String getResultString(){
return "このサンプルはコンパイルエラーとなります。";
}
}

【コンパイルエラー】
SampleMain.java:8: クラス Sample は public であり、ファイル Sample.java で宣言し
なければなりません。
public class Sample
^
エラー 1 個


コンパイルエラーとなることが確認できたと思います。

このため、一つのJavaファイルに複数のクラスを定義したとしても他ファイルから呼び出せるクラスは一つしかありません。

gamesite8 at 16:47│TrackBack(0)clip!修飾子 

トラックバックURL