アクセス制御者


目次

  • 目次
  • 1.アクセス制御者
  • 1.1. アクセス制御者タイプ
  • 1.1.1クラス前のアクセス制御者
  • 1.2. アクセス範囲の順序
  • 1.3. コード#コード#
  • 1.3.1同類パッケージ
  • 1.3.2同一パッケージの異なるクラス
  • 1.3.3他のパッケージが継承するサブクラス
  • 1.3.4その他のパッケージその他のクラス
  • 1.アクセス制御者(access modifier)


    1.1. アクセス制御者タイプ

  • private-同類
  • (default)-同じパッケージ
  • protected-同じパッケージ+サブアイテム(異なるパッケージ)
  • public-アクセス制限なし
  • 1.1.1クラス前のアクセス制御者

  • public-アクセス制限なし
  • defalut-同じパッケージ
  • 1.2. アクセス範囲の順序


    public > protected > default > private
    すべてのpublicOOprotectedOOO(default)OOprivateO(デフォルト)
  • defaultとは、アクセス制御者がいないことを意味します.
  • 1.3. コード#コード#


    1.3.1同類パッケージ

    
      package access1;
    
      public class Myparent {
          private int pri;
          int def;
          protected int pro;
          public int pub;
    
          public void printMember() {
              System.out.println(pri);
              System.out.println(def);
              System.out.println(pro);
              System.out.println(pub);
          }
    
          public static void main(String[] args) {
              Myparent p = new Myparent();
    
              System.out.println(p.pri); //OK
              System.out.println(p.def); //OK
              System.out.println(p.pro); //OK
              System.out.println(p.pub); //OK
          }
      }

    1.3.2同一パッケージの異なるクラス

    
      package access1;
    
      public class Myparent {
          private int pri;
          int def;
          protected int pro;
          public int pub;
    
          public void printMember() {
              System.out.println(pri);
              System.out.println(def);
              System.out.println(pro);
              System.out.println(pub);
          }
      }
    
      class Mydef{
          public static void main(String[] args) {
              Myparent p = new Myparent();
    
              System.out.println(p.pri); //에러
              System.out.println(p.def); //OK
              System.out.println(p.pro); //OK
              System.out.println(p.pub); //OK
          }
      }

    1.3.3他のパッケージが継承するサブクラス

    
      package access2;
    
      import access1.Myparent;
    
      public class Mypro extends Myparent {
    
          public void printMember() {
              System.out.println(pri); //에러
              System.out.println(def); //에러
              System.out.println(pro); //OK
              System.out.println(pub); //OK
          }
      }
    

    1.3.4その他のパッケージその他のクラス

    
      package access2;
    
      import access1.Myparent;
    
      class MyTest {
    
          public static void main(String[] args) {
    
              Myparent p = new Myparent();
    
              System.out.println(p.pri); //에러
              System.out.println(p.def); //에러
              System.out.println(p.pro); //에러
              System.out.println(p.pub); //OK
          }
      }

    References

  • 南宮城、ジャワ議政石(基礎):受講後に整理した資料.
  • 🎈2020.11.14
  • 🎈クリーンアップ:Vscode