TOP > 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 個
コンパイルの段階で弾かれてしまいます。

最近の記事
当サイトについて  免責事項  プライバシーポリシー
Copyright (C) Sasuke 2012 All rights reserved.