Java面向對象入門(2)-訪問修飾符

Java訪問修飾符–public, protected, private and default

Java提供了四個訪問修飾符來設置類,變量,方法和構造函數的訪問級別,即publicprivateprotecteddefault。這些訪問級別修飾符確定其他類是否可以使用特定字段或調用特定方法。

1. Java訪問修飾符

讓我們快速地比較一下這些訪問修飾符。

  1. public -隨處可見
  2. protected –可在同一包和子類中訪問
  3. default –僅在同一程序包中可訪問
  4. private –僅可在同一類上使用

可以嚴格按以下順序對訪問說明符進行排序

公用>受保護>軟件包專用(或默認)>專用

1.1. public

**公衆可以從任何地方訪問。**可以從任何其他類訪問已聲明爲公共的類,方法,構造函數,接口等。
但是,如果我們嘗試訪問的公共類位於不同的包中,則仍然需要導入公共類。

public class HelloWorld 
{
   private String format;

   public String getFormat() {
      return this.format;
   }
   public void setFormat(String format) {
      this.format = format;
   }
}

在上面的示例中,getFormat()setFormat()方法是公共的,因此可以在任何地方訪問它們。

1.2. protected

**相同程序包的類和任何程序包中的子類都可以訪問Protected。**受保護的訪問使子類有機會使用helper方法或變量,同時防止無關的類嘗試使用它。

public class HelloWorld 
{
   private String format;
 
   protected String getFormat() {
      return this.format;
   }
   protected void setFormat(String format) {
      this.format = format;
   }
}

在上面給出的示例中HelloWorld,變量format是聲明的protected,因此可以由存在於同一包中的所有類HelloWorld.java以及存在於其他包中的子類訪問。

1.3. default (package private)

默認訪問修飾符意味着我們不會爲類,字段,方法等明確聲明訪問修飾符。默認可被同一包的類訪問。
請注意,public static final默認情況下,接口中的字段是隱式的,接口中的方法是默認的public

public class HelloWorld 
{
   String format;
 
   public String getFormat() {
      return this.format;
   }
   public void setFormat(String format) {
      this.format = format;
   }
}

1.4. private

private訪問修飾符是最嚴格的訪問級別。(最高級)類和接口不能是私有的。**私人變量只能在同一類內訪問。**聲明爲私有的方法,變量和構造函數只能在聲明的類本身內訪問。
在上面給出的示例中HelloWorld,變量format被聲明爲私有,因此沒有類可以直接訪問它。必須通過公共方法getFormat()和進行訪問setFormat()
**訪問級別以兩種方式影響您。**首先,當您使用來自另一個來源的類時,訪問級別確定您自己的類可以使用那些類的成員。其次,編寫類時,需要確定類中每個成員變量和每個方法應具有的訪問級別。
局部變量和形式參數不能使用訪問說明符。由於根據範圍規則,它們本質上是外部無法訪問的,因此它們實際上是私有的。
如果其他程序員使用您的類,則要確保不會發生由於濫用而引起的錯誤。訪問級別可以幫助您做到這一點。

2.訪問控制級別

訪問控制分爲兩個級別

  1. 類級別 -允許的修飾符是public或package-private(默認)。
  2. 方法級別 -允許的修飾符是public,private,protected或package-private(默認)。

可以使用修飾符聲明一個類public,在這種情況下,該類對於所有地方的所有類都是可見的。如果類沒有修飾符(default,也稱爲package-private),則僅在其自己的包中可見。
對於成員,還有兩個附加的訪問修飾符:privateprotected。private修飾符指定只能在其自己的類中訪問該成員。
protected修飾符指定成員只能在其自己的程序包中(與package-private一樣)訪問,並且只能由其在另一個程序包中的類的子類訪問
更多精彩請關注

發佈了102 篇原創文章 · 獲贊 84 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章