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の場合

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 個

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

  • この記事を書いた人

sasuke

インフラエンジニアからwebエンジニアに転職し両方の強みを生かしていければと思います。

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

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