【Java】修飾符

修飾符(Modifier):是用於限定類型以及類型成員的聲明的一種符號。
其用來定義類、方法或者變量,一般放在語句的最前端前端

例子:編程

public class Person {
    default String name;
    public String sex;
    static final int age;
    protected static final String birth;
    private String position;
}

public static void main(String[] args) {
    // 方法體
}

Java語言提供了不少修飾符,主要分爲如下兩類:線程

  • 訪問修飾符
  • 非訪問修飾符

訪問修飾符

訪問修飾符:就是類,屬性和方法的定義分級制度。code

Java中,可使用訪問控制符來保護對類、變量、方法和構造方法的訪問。Java 支持如下 4 種不一樣的訪問權限:對象

  • public公共):對全部類可見。繼承

    使用對象:類、接口、變量、方法接口

    注意:一個程序的主類必須是公共類,且類名稱必須與文件名稱徹底一致同步

  • protected被保護):對同一包內的類和全部子類可見。it

    使用對象:變量、方法。io

    注意:不能修飾類(外部類)。

  • default(即 默認,什麼也不寫):在同一包內可見,不使用任何修飾符。

    使用對象:類、接口、變量、方法。

  • private私有):在同一類內可見。

    使用對象:變量、方法。

    注意:不能修飾類(外部類)

咱們能夠經過如下表來講明訪問權限:

修飾符 當前類 同一包內 同一包子類 不一樣包子類 其餘包
public
protected √/× ×
default × ×
private × × × ×

注意: 表格中出現了√/×,你們可能就很困惑了,怎麼會有√/×,因此我接下來給你們解釋。
protected修飾符,若子類與基類不在同一包中,
那麼在子類中,子類實例能夠訪問從基類繼承而來的protected方法;
不能訪問基類實例的protected方法。

非訪問修飾符

爲了實現一些其餘的功能,Java 也提供了許多非訪問修飾符。

  • static靜態):用來聲明類屬性和類方法。

    使用對象:類方法和類變量。

  • final最終):final修飾的類不可以被繼承,修飾的方法不能被繼承類從新定義,修飾的變量爲常量,是不可修改的。

    使用對象:類、方法和變量

  • abstract抽象):用來建立抽象類和抽象方法,將一個類聲明爲抽象類,沒有實現的抽象方法,須要子類提供方法實現。

    使用對象:類、方法

  • synchronized同步):主要用於線程的編程,該修飾符用於在運行前,對他所屬的方法加鎖,以防止多個線程的同時訪問,運行結束後解鎖。

    使用對象:線程

  • volatile易失):主要用於線程的編程,在多個線程中,指定該變量能夠同時被幾個線程控制和修改。

    使用對象:線程

static修飾符

  • 靜態變量:類變量
    static關鍵字用來聲明獨立於對象的靜態變量,不管一個類實例化多少對象,它的靜態變量只有一份拷貝。
    靜態變量也被稱爲類變量。局部變量不能被聲明爲 static 變量。

  • 靜態方法:類方法
    static關鍵字用來聲明獨立於對象的靜態方法。靜態方法從參數列表獲得數據,而後計算這些數據。

    注意:靜態方法不能使用類的非靜態變量
    (即 類方法使用類變量,而不能使用對象變量)

相關文章
相關標籤/搜索