java範圍public ,private ,protected 及不寫時的區別

來源:互聯網
上載者:User

標籤:

說明部分轉自:http://yangmingjiayou.iteye.com/blog/151865

  
在說明這四個關鍵字之前,我想就class之間的關係做一個簡單的定義,對於繼承自己的class,base class可以認為他們都是自己的子女,而對於和自己一個目錄下的classes,認為都是自己的朋友。 

1、public:public表明該資料成員、成員函數是對所有使用者開放的,所有使用者都可以直接進行調用 

2、private:private表示私人,私人的意思就是除了class自己之外,任何人都不可以直接使用,私人財產神聖不可侵犯嘛,即便是子女,朋友,都不可以使用。 

3、protected:protected對於子女、朋友來說,就是public的,可以自由使用,沒有任何限制,而對於其他的外部class,protected就變成private。 

範圍       當前類    同一package   子孫類     其他package 

public            √                  √               √                 √ 

protected       √                 √                √                 × 

friendly           √                 √                ×                × 

private           √                   ×               ×               × 

不寫時預設為friendly

 

 

下面是一個執行個體:

1.fTest.java

 

Java代碼  收藏代碼package scope;    public class fTest {      private int a=1;      protected int b=2;      public int c=3;      private int  showa(){          /*System.out.println(a);*/          return a;      }      public int  showa1(){          /*System.out.println(a);*/          return a;      }      protected int showb(){          /*System.out.println(b);*/          return b;      }      public int showc(){          /*System.out.println(c);*/          return c;      }        }  

 

 2.sonTest.java

 

Java代碼  收藏代碼package scope;    import static org.junit.Assert.*;    import org.junit.Test;    public class sonTest {        @Test      public void test() {          fTest ft=new fTest();          /*private型的a變數,雖然不能通過ft.a的方式直接擷取,但是可以通過public的showa1擷取a的值。          * 要想a變數完全私人,那麼把showa1的方法也改成private*/          int a1= ft.showa1();          int b1=ft.b;          int b=ft.showb();          int c1=ft.c;          int c=ft.showc();          System.out.println("私人變數a1="+a1+"受保護變數b="+b+"受保護變數b1="+b1+                  "公開變數c="+c+"公開變數c1="+c1);      }    }  

 

java範圍public ,private ,protected 及不寫時的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.