在Java編程語言中,類的三種訪問權限的區別

在Java編程語言中,類可以用public、protected或private關鍵字來指定訪問權限。這三種訪問權限有如下區別:


在Java編程語言中,類的三種訪問權限的區別

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的受保護成員。

分享給朋友:

“在Java編程語言中,類的三種訪問權限的區別” 的相關文章

mark元素使用紅色代表及例子

mark元素使用紅色代表及例子

在 HTML 中,<mark> 元素用於標記或突出顯示文本中的重要或關鍵內容。為了提高用戶瀏覽體驗,這些文本內容通常被渲染成鮮艷的紅色,因為紅色是視覺上最吸引人的顏色之一。 舉個例子,在一篇文章中,我們可能會用 <mark> 標記來標記一段關鍵文字,如下所示:<…

mark元素使用紅色代表及例子

mark元素使用紅色代表及例子

在HTML中,<mark> 元素可以用於標記或強調文本中的重要或關鍵內容。這個元素通常會用醒目的紅色來渲染,因為紅色是一個視覺上非常具有註意力的顏色。在這種情況下,你可以將這些關鍵字用 <mark> 標簽包圍起來,使其突出顯示。這樣可以幫助用戶更快速地發現這個型號是這個品牌的…

mark點怎麼設置及設置例子

mark點怎麼設置及設置例子

mark 元素用於標記或高亮文本,非常適合用於文本搜索和結果導航。要在文本中使用 mark 元素,只需要將需要高亮的文本放在 mark 元素內即可。通常情況下,瀏覽器默認為高亮文本設置為黃色。 .highlight {    background-color: lightblue…

一個簡單的html結婚特效的代碼

一個簡單的html結婚特效的代碼

以下是一個簡單的html結婚特效的代碼:1. 使用html和css定義了一個結婚的基本樣式;2. 分別定義新娘和新郎,並使用background-image設置其背景圖;3. 定義一個心形圖案,並使用animation讓其跳動。…

一個簡單的html大海日出特效的代碼

一個簡單的html大海日出特效的代碼

以下是一個簡單的html大海日出特效的代碼:1. 使用html和css定義了一個大海和太陽的基本樣式;2. 使用animation讓太陽從初始位置向上升起,並且設置好其動畫屬性;3. 設置大海背景漸變和水面的動畫效果。…

星空特效的HTML代碼示例

星空特效的HTML代碼示例

以下是一個星空特效的HTML代碼示例:這個代碼會在頁面背景中生成100個閃爍的星星,使得整個頁面看起來像是夜空中的星空。可以在瀏覽器中運行查看效果。這些代碼可以在瀏覽器中運行並產生相應的星空特效。…