此示例使用 HTML + Canvas 實現滑動拼圖驗證碼。Canvas繪制帶隨機缺口的背景,獨立滑塊按鈕監聽滑鼠/觸摸拖拽,實時將滑塊位置映射到Ca...
在Java編程語言中,類的三種訪問權限的區別
在Java編程語言中,類可以用public、protected或private關鍵字來指定訪問權限。這三種訪問權限有如下區別:

1. public訪問權限:
使用public關鍵字表示該類的成員可以被任何其他類訪問。對於public成員變量和成員函數,其他類可以直接訪問和調用,不需要繼承該類也可以使用。一般來說,public訪問權限用於指定開放的API,能夠方便其他開發人員使用。
2. protected訪問權限:
使用protected關鍵字表示該類的成員可以被該類的子類和同一包中的其他類訪問。使用protected訪問權限的成員只能在本類和其子類中訪問,在同一包中的其他類也可以訪問該成員。使用protected訪問權限能夠實現類成員的限制和封裝,並且也不會過度暴露使用細節。
3. private訪問權限:
使用private關鍵字表示該類的成員只能被該類的成員訪問。private訪問權限被用於強制實現類的封裝特性,使得除了改變私有成員的類之外,沒有其他任何代碼可以訪問或修改私有成員。在類的內部和嵌套類中可以訪問private成員,而在其他類中,private成員無法被訪問。
總結來說,public、protected和private訪問權限是三種不同的訪問級別,可以根據需要選擇合適的訪問級別來限制和保護類的成員。這樣可以實現更好的封裝,讓代碼更加安全和可靠。
下面是示例代碼演示三種訪問權限之間的區別:
public class ExampleClass {
public int publicVar; // 公有成員變量
protected int protectedVar; // 受保護的成員變量
private int privateVar; // 私有成員變量
public ExampleClass() {
publicVar = 1;
protectedVar = 2;
privateVar = 3;
}
public void publicMethod() {
System.out.println("This is a public method");
}
protected void protectedMethod() {
System.out.println("This is a protected method");
}
private void privateMethod() {
System.out.println("This is a private method");
}
}
public class ChildClass extends ExampleClass {
public ChildClass() {
super();
}
// 覆蓋父類的protected方法
@Override
protected void protectedMethod() {
System.out.println("This is a protected method in child class");
}
}
public class TestClass {
public static void main(String[] args) {
ExampleClass obj = new ExampleClass();
// 訪問公有成員變量和成員方法
System.out.println(obj.publicVar);
obj.publicMethod();
// 訪問受保護的成員變量和成員方法
obj.protectedVar = 10;
obj.protectedMethod();
// 私有成員無法在外部類中直接訪問
// obj.privateVar = 20;
// obj.privateMethod();
ChildClass childObj = new ChildClass();
// 這裏訪問父類的受保護的成員變量和成員方法,因為ChildClass繼承自ExampleClass,
// 所以ChildClass可以在自己的方法和構造函數中通過super關鍵字訪問超類的受保護成員
childObj.protectedVar = 30;
childObj.protectedMethod();
}
}在上面的代碼中,我們定義了一個ExampleClass,並將其中的成員分別聲明為public、protected和private,然後創建了一個ChildClass作為ExampleClass的子類。在TestClass中,我們創建了一個ExampleClass的對象obj,並分別訪問了ExampleClass中的public、protected和private成員,結果表明:公有成員變量和成員方法可以被其他類直接訪問,受保護的成員變量和成員方法只能在繼承類中或者和ExampleClass在同一包內的類中訪問,而私有成員則只能在同一個類的成員函數中訪問,無法被其他類直接訪問。最後我們還創建了ChildClass類,並覆蓋了ExampleClass中的protectedMethod方法,並通過super關鍵字訪問了ExampleClass的受保護成員。
標籤: 類的三種訪問權限的區別
相關文章
