在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編程語言中,類的三種訪問權限的區別” 的相關文章

html a標簽target屬性

html a標簽target屬性

HTML語言中的標簽用於定義超鏈接。其中,標簽有一個屬性叫做target,它用於指定鏈接在何處打開。目前,標簽的target屬性有以下四個取值:- _self:鏈接會在當前窗口中打開(默認值),這意味著打開新的文檔或資源時,頁面會在當前瀏覽器窗口中重新加載,並將新文檔或資源顯示在當前窗口中。基於以上…

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

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

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

視頻嵌入代碼,簡單的 video 嵌入代碼例子

視頻嵌入代碼,簡單的 video 嵌入代碼例子

視頻嵌入代碼,簡單的 video 嵌入代碼例子:- height:視頻高度。- controls:為 true 時,添加視頻控制條。- source:指定視頻文件路徑和類型,可支持多種類型。- Your browser does not support the video tag:如果用戶的瀏覽器不…

詳細解釋html標簽,每種html標簽的含義和用法

詳細解釋html標簽,每種html標簽的含義和用法

1. `<html>` 標簽:`<html>` 標簽用於定義 HTML 文檔的開始和結束。在 `<html>` 中,我們可以包含 `<head>` 和 `<body>` 標簽,以便定義文檔的頭部和主體部分。在 HTML5 中,我們可以省略…

HTML標簽屬性大全及代碼例子

HTML標簽屬性大全及代碼例子

在HTML中,屬性是在標簽中使用的特殊命令,它們提供了額外的信息以更好地描述標簽的內容和行為。屬性名表示該屬性的名稱,而屬性值表示該屬性要設置的值。HTML標簽屬性有很多種類和用途,它們可以影響標簽的內容、顏色、尺寸、超鏈接、樣式、表單等方面。一些常見的HTML標簽屬性包括:class、id、sty…

html零基礎入門教程及代碼演示例子

html零基礎入門教程及代碼演示例子

HTML是創建網頁的基礎語言。在互聯網的世界裏,網頁是我們獲取信息和與世界連接的主要途徑之一。因此,學習HTML是設計和制作網頁的重要一步。如果您是一個完全零基礎的人,那麼這份教程可以幫助您快速入門,並開始創建自己的網頁。在這個教程中,我們將探討HTML的基礎語法和標記,以及如何將它們組合在一起來構…