java基礎(七) java四種存取權限

來源:互聯網
上載者:User

標籤:div   其他   count   code   可見度   控制   abstract   範圍   int   

引言

??Java中的存取權限理解起來不難,但完全掌握卻不容易,特別是4種存取權限並不是任何時候都可以使用。下面整理一下,在什麼情況下,有哪些存取權限可以允許選擇。

存取權限簡介

存取權限控制: 指的是本類及本類內部的成員(成員變數、成員方法、內部類)對其他類的可見度,即這些內容是否允許其他類訪問。

Java 中一共有四種存取權限控制,其許可權控制的大小情況是這樣的:public > protected > default(包存取權限) > private ,具體的許可權控制看下面表格,列所指定的類是否有許可權允許訪問行的許可權控制下的內容:

存取權限 本類 本包的類 子類 非子類的外包類
public
protected
default
private
存取權限控制的使用情境

存取權限使用的情境可以總結為下面的四種情境,分別對存取權限的使用有不同的限制:

1. 外部類的存取控制

外部類(外部介面) 是相對於內部類(也稱為嵌套類)、內部介面而言的。外部類的存取控制只能是這兩種:publicdefault

//public 訪問呢許可權的外部類,所有類都可以使用這個類public class OuterClass {}//default 許可權的外部介面,所有類、介面均可以使用此介面interface OuterInterface{    }
2. 類裡面的成員的存取控制

類裡面的成員分為三類 : 成員變數成員方法成員內部類(內部介面)

類裡面的成員的存取控制可以是四種,也就是可以使用所有的存取控制許可權

public class OuterClass {       public int aa; //可以被所有的類訪問    protected boolean bb; //可以被所有子類以及本包的類使用        void cc() { //default 存取權限,能在本包範圍內使用        System.out.println("包存取權限");    }        //private許可權的內部類,即這是私人的內部類,只能在本類使用    private class InnerClass{            }}

注意:
這裡的類裡面的成員 是指類的全域成員,並沒有包括局部的成員(局部變數、局部內部類,沒有局部內部介面)。或者說,局部成員是沒有存取權限控制的,因為局部成員只在其所在的範圍內起作用,不可能被其他類訪問到。

  public void count(){    //局部成員變數    public int amount;//編譯無法通過,不能用public修飾    int money;//編譯通過    //局部嵌套介面    class customer{//編譯通過            }}

上面的兩種情境幾乎可以適應所有的情況,但有一些情況比較特殊,還做了有些額外存取權限的要求

3. 抽象方法的存取權限

普通方法是可以使用四種存取權限的,但抽象方法是有一個限制:不能用private 來修飾,也即抽象方法不能是私人的,否則,子類就無法繼承實現抽象方法。

4. 介面成員的存取權限

介面由於其的特殊性,所有成員的存取權限都規定得死死的,下面是介面成員的存取權限:

  • 變數: public static final
  • 方法: public abstract
  • 內部類、內部介面 : public static

也因為所有的一切都預設強制規定好了,所以我們在用的時候,並不一定需要完整寫出所有的修飾符,編譯器會幫我們完成的,也就是,可以少寫修飾符,但不能寫錯修飾符。

public interface Interface_Test {        public int aa = 6; //少寫了  static final     int bb = 5; //        //嵌套介面,可以不寫public static     interface cc{            }}

java基礎(七) java四種存取權限

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.