Java アクセス修飾子のサンプル(private、修飾子なし、protected、public)

Javaのアクセス修飾子のサンプルです。

目次

アクセス修飾子

メンバー変数やメソッドなどで使用できるアクセス修飾子です。
アクセスを制限します。

項目 説明
public すべてのクラスからアクセス可能
protected 同じパッケージのクラスからアクセス可能
異なるパッケージのサブクラスからアクセス可能
修飾子なし 同じパッケージのクラスからアクセス可能
private 現在のクラスからアクセス可能

 

public

すべてのクラスからアクセス可能です。

下図のtest2パッケージのSample1クラスのメソッドにpublicを指定した場合、test1パッケージのTest1クラスからアクセスできます。

Sample1.java

5行目のアクセス修飾子はpublicです。

package test2;

public class Sample1 {
		
	public void getNum1() {
		System.out.println("abc");
	}
}

Test1.java

8行目のメソッドで、異なるパッケージにあるメソッドにアクセスしています。Sample1クラスのgetNum1メソッドがpublicのため可能です。publicがない場合は、コンパイルエラーになります。

package test1;

import test2.Sample1;

public class Test1 {
	public static void main(String[] args) {
		Sample1 s1 = new Sample1();
		s1.getNum1(); //abc
	}
}

 

protected

同じパッケージのクラスからアクセス可能です。
また、異なるパッケージのサブクラスからもアクセス可能です。

下図は、test1パッケージのTest1.javaが親クラスでtest2パッケージのSample1.javaが子クラスです。
Test1クラスのメソッドにprotectedを指定した場合、Sample1クラスからアクセスできます。

Test1.java

5行目のアクセス修飾子はprotectedです。

package test1;

public class Test1 {

	protected void getNum1() {
		System.out.println("abc");
	}
}

Sample1.java

5行目でTest1クラスを継承しています。

8行目のメソッドで、異なるパッケージにあるメソッドにアクセスしています。Sample1クラスはTest1クラスの子クラスであり、Test1クラスのgetNum1メソッドがprotectedのため可能です。protectedがない場合は、コンパイルエラーになります。

package test2;

import test1.Test1;

public class Sample1 extends Test1 {
	
	public void S1() {
		getNum1();
	}
}

 

修飾子なし

同じパッケージのクラスからアクセス可能です。

下図は、test1パッケージに2つのクラスがあります。
Sample1クラスのメソッドに修飾子を指定しない場合、Test1クラスからアクセスできます。

Sample1.java

5行目のアクセス修飾子はありません。

package test1;

public class Sample1 {
	
	void getNum1() {
		System.out.println("abc");
	}
}

Test1.java

6行目のメソッドで、同じパッケージにあるメソッドにアクセスしています。Sample1クラスのgetNum1メソッドの修飾子はないため可能です。privateの場合は、コンパイルエラーになります。

package test1;

public class Test1 {
	public static void main(String[] args) {
		Sample1 s1 = new Sample1();
		s1.getNum1(); //abc
	}
}

 

private

現在のクラスからアクセス可能です。

下図は、test1パッケージに2つのクラスがあります。
Sample1クラスのメソッドにprivateを指定した場合、Test1クラスからはアクセスできません。
Sample1クラス内からのみアクセスできます。

関連の記事

Java 変数のデータ型とラッパークラス

△上に戻る