🧣
【Java】アクセス修飾子 とは
1.はじめに
・アクセス修飾子とは、public
/protected
/private
といった修飾子の総称です。
・クラス・メソッド・メンバ変数のアクセス範囲を設定する際に使用します。
・アクセス修飾子毎のアクセス範囲の広狭は、以下の通りです。
アクセス範囲広:public < protected < 修飾子なし < private
:アクセス範囲狭
2.サンプルプログラム
Sample_1.java
package com.lesson;
public class Sample_1 {
public String pub_var = "publicアクセス修飾子";
protected String prot_var = "protectedアクセス修飾子";
String pack_var = "アクセス修飾子なし";
private String pri_var = "privateアクセス修飾子";
public static void main(String[] args) {
Sample_1 lesson = new Sample_1();
System.out.println(lesson.pub_var);
System.out.println(lesson.prot_var);
System.out.println(lesson.pack_var);
System.out.println(lesson.pri_var);
}
}
Sample_2.java
package com.lesson;
public class Sample_2 {
public static void main(String[] args) {
Sample_1 lesson = new Sample_1();
System.out.println(lesson.pub_var);
// 同一パッケージのクラスなので、protected修飾子の変数にアクセス可能
System.out.println(lesson.prot_var);
// 同一パッケージのクラスなので、修飾子なし変数にアクセス可能
System.out.println(lesson.pack_var);
}
}
Sample_3.java
package com.lesson.other;
import com.lesson;
// com.lessonのSample_1クラスを継承
public class Sample_3 extends Sample_1 {
public static void main(String[] args) {
Sample_3 lesson = new Sample_3();
System.out.println(lesson.pub_var);
// 他パッケージのサブクラスなので、protected修飾子の変数にアクセス可能
System.out.println(lesson.prot_var);
}
}
Sample_4.java
package com.lesson.other;
import com.lesson;
// Sample_1クラスを継承していない他パッケージのクラス
public class Sample_4 {
public static void main(String[] args) {
Sample_1 lesson = new Sample_1();
// public修飾子の変数にアクセス可能
System.out.println(lesson.pub_var);
}
}
Discussion