Java Java クラス、インターフェース

アクセス修飾子

更新日:

こここでは、アクセス修飾子について説明します。

アクセス修飾子とは?

アクセス修飾子とは、データを他のクラス、又は他のパッケージから参照を出来ないように
指定する事が可能です。

アクセス修飾子一覧

アクセス修飾子には、以下の種類があります。

アクセス修飾子 内容
public すべてのクラスからアクセス可能。
protected 同一クラスと継承したクラスだけアクセス可能
(同一パッケージの場合、アクセス可能)
private 同一クラス内だけアクセス可能
なし 同一クラス内、同一パッケージからアクセス可能。
 アクセス修飾子 同一パッケージ  他のパッケージ
自クラス サブクラス
(継承クラス)
他クラス  サブクラス 他クラス
public  ○
protected  ○ ×
 private × × × ×
なし  × ×

また、アクセス修飾子は「クラス」・「メソッド」・「メンバ変数」に使用できますが、使用できる修飾子に違いがあります。
(クラスの場合は、「public」、「指定なし」のみ使用可能と覚えとけば問題ないです。)

 アクセス修飾子 クラス メソッド メンバ変数
public
protected ×
 private ×
なし

実際の使用例

以下の例では、「public」と「private」でメンバー変数にアクセスを行なった違いを表示しています。

publicの場合

クラス「sam1」で定義している名前が表示されます。

public class sam1 {
   public static  String name = "さすけ";

}
public class sam2 extends sam1 {
   public static void main(String[] args) {
   System.out.println(name);
   }
}

実行結果

c:\java>javac sam1.java
c:\java>javac sam2.java
c:\java>java sam2
さすけ
privateの場合

メンバ変数を「private」に変更した例です。

public class sam1 {
    private static  String name = "さすけ";
    //privateに変更

}
public class sam2 extends sam1 {
   public static void main(String[] args) {
   System.out.println(name);
   }
}

実行結果

c:\java>javac sam2.java
sam2.java:4: name は sam1 で private アクセスされます。
System.out.println(name);
エラー 1 個

コンパイルの段階で弾かれてしまいます。

-Java, Java クラス、インターフェース
-,

Copyright© さすけのプログラミング入門 , 2018 All Rights Reserved.