Java 中的預設訪問修飾符
在本教程中,我們將討論 Java 中的預設訪問修飾符。顧名思義,當我們不使用變數或函式指定任何人時,使用訪問修飾符。
Java 中的預設訪問修飾符
Java 中有四種型別的 access
修飾符,private
、protected
、public
和 default
。要理解 default access
修飾符,我們需要知道為什麼我們需要它以及不同條件下的其他修飾符。
private access
修飾符是最嚴格的,因為它只允許訪問同一個類。當我們不知道 class
變數或函式將不會在我們所在的類之外的任何其他地方使用時,我們會使用它。
protected access
修飾符允許在類或同一個包內訪問,但只有其他包的子類可以訪問。
當我們希望它對包中的所有類都可用但不希望任何其他包訪問
時使用它。
正如你所猜測的,public access
修飾符允許全域性訪問,這意味著我們可以在任何地方訪問它,甚至可以從其他包訪問。
當我們不使用上述任何內容時,default access
修飾符就會發揮作用。它的訪問級別僅限於同一個包,其他包即使建立子類也無法訪問。
讓我們看一個 default access
修飾符的示例以及它是如何工作的。我們有兩個類,ExampleClass1
和 ExampleClass2
。第一個類包含一個沒有任何訪問修飾符的變數,稱為 randomString
。
現在在 ExampleClass2
類中,我們建立一個函式並通過建立 ExampleClass1
的物件來訪問 randomString
變數。我們可以做到,而且沒有錯誤。發生這種情況是因為這兩個類都在同一個包中。
注意類頂部的包名稱 com.package
。
在 Java 中使用 ExampleClass1
package com.tutorial;
public class ExampleClass1 {
String randomString = "This is a string from Example Class1";
public static void main(String[] args) {
String getReturnedString = new ExampleClass2().functionWithDefaultAccessModifier();
System.out.println(getReturnedString);
}
}
在 Java 中使用 ExampleClass2
package com.tutorial;
public class ExampleClass2 {
String functionWithDefaultAccessModifier() {
return new ExampleClass1().randomString;
}
}
輸出:
This is a string from Example Class1
在上述場景中,可以從同一包中的另一個類訪問 randomString
。
儘管如此,當我們嘗試從位於另一個包 com.tutorial2
中的類訪問位於 com.tutorial
包中的 ExampleClass1
的 randomString
變數時,IDE
會丟擲錯誤說 randomString
不是公共的,不能從它的包外部訪問。
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn