JAvaアクセス修飾子public protected friendly private用法概要


JAvaアクセス修飾子public  protected  friendly private用法まとめ 
     まず宣言:javaではfriendlyという修飾子には明示的な宣言はありません.メンバー変数やメソッドの前に修飾子は何も使いません.デフォルトはfriendlyです.
    筋道がはっきりしているために、3つの異なる状況に分けてまとめます.
   アクセス権修飾子修飾メンバー変数とメソッド
   public:このメンバー変数とメソッドが共有されており、任意の場合にアクセスできることを示します.
  
   protected:同じパッケージにアクセスする必要があります.(簡単な話ですが、例を見ればわかります)   
      
eg:class A
          { 
            protected int weight ;
            protected int f( int a,int b   )   
            {
              //    
            }
           }  
   
       BとAが同じパッケージにあるとすると、
         
 class B
          {
            void g()
            {
              A a=new A();
              A.weight=100;//  
              A.f(3,4);    //  
             }
           }

   特別説明:同じパッケージの中で何がありますか?
   答:パッケージでパッケージ化されたclassは、同じパッケージに呼ばれています.(わかりませんが、例を挙げます)
       eg:JDKのsrcjavaioでは、多くのjavaクラスが見られます.最初のソースコードはpackage java.ioです.
       パッケージを使用してパッケージ化されていない場合、同じディレクトリの下にあるクラスも同じパッケージと見なされます.
  
   friendly:この場合、protectedと同じです.違いは2番目と3番目の場合です.
    
  eg: class A
          { 
            int weight ;
            int f( int a,int b   )   
            {
              //    
            }
           }   
  
       BとAが同じパッケージにあるとすると、
         
 class B
          {
            void g()
            {
              A a=new A();
              A.weight=100;//  
              A.f(3,4);    //  
             }
           }

    private:このクラスでのみアクセスできます.
          
  eg:    class   Test
                    {  
                       private int money;
                       Test()
                       {
                          money=2000;
                       }
                       private int getMoney()
                       {
                         return money;
                        }
                     public  static  void main(String args[])
                     {
                         Test te=new  Test();
                         te.money=3000;             //  
                         int m=te.getMoney();       //  
                         System.out.println("money="+m);
                      }
                     }
                   

   PS:実際、重要なデータをprivateに修飾し、publicの関数を書いてアクセスすることは、OOPのパッケージ特性を体現し、OOPのセキュリティの体現である.
  
二  アクセス権修飾子修飾クラス
   1,protectedとprivateでクラスを修飾することはできません.
   2.friendlyで修飾されたクラスをフレンドリークラスと呼び、別のクラスでフレンドリークラスを使用してオブジェクトを作成する場合は、同じパッケージにあることを保証します.
 
三   アクセス権修飾子と継承
   ここでのアクセス修飾子とは、メンバー変数とメソッドを修飾することを意味します.次の2つのケースに分けられます.
   1、子と親は同じパッケージにあります
    この場合privateとして宣言された変数とメソッドのみが継承(アクセス)できません.
  
eg:
     class Father
     {
       private int money ;
       int weight=100;
       
      }
     class Son extends Father
     {
       viod f()
       {
         money=10000;//     
         weight=100; //     
        }
      }
    2,           
      private friendly      (  ), protected public  。
     eg:
       Father.java

      package com.aaa
      public class Father
     {
       int height ;
       protected  int money=120;
       public int weight;
       protected int getMoney()
       {
         return money;
       }
       void setMoney(int newMoney)
       {
         money=newMoney;
       }
      }
     
      Son.java
      package com.bbb
      import com.aaa.Father;
      public class Son extends Father
      {
         void f()
         {
           money=10000;//  
           //height=170;//  ,height friendly     
           System.out.println(money);//     10000
           //setMoney(300);          //  
           int number=getMoney();    //  
           System.out.println(number);//     10000
          }
           public  static  void main(String args[])
          {
            Son sss=new Son();
            sss.f();
           }
       }

  したがって、アクセス権修飾子の権限は、高いものから低いものまでpublicです.  ,protected  ,friendly, private.