public 和 protected 存取修飾符決定如何存取類別或方法的成員。修飾符在聲明時附加到成員上。我們知道這些存取修飾符在 Java oops 概念(如封裝、多態性和繼承)中發揮著重要作用。它有助於防止濫用會員提供的功能。我們將嘗試透過範例程式來理解 Java 中的 public 和 protected 存取修飾符。
Java 不限制公共成員的可存取性。任何聲明為 public 的東西都可以在任何地方訪問,這意味著我們可以在類內、類外、包內和包外訪問它們。您可能已經注意到,Java 中的 main() 方法始終定義為公用方法,以便目前程式任何範圍之外的 JVM 都可以呼叫它。
公共存取修飾符的一些範例 -
public int i1 = 108; public double d2 = 6.55;
這裡,變數被宣告為公共。
以下範例說明了套件成員在 Java 中的工作原理。
class Pack { public void prnt() { // method declared as public String msg = "I am inside a public method"; System.out.print(msg); } } public class ClassShow extends Pack { // public child class public static void main(String args[]) { // creating object of child class ClassShow obj = new ClassShow(); // method calling through object of child class obj.prnt(); } }
I am inside a public method
在上面的程式碼中,「Pack」類別是「ClassShow」的父類別。在父類別中,我們宣告了一個名為「prnt()」的公共方法來列印一條簡單的訊息。在子類別的main()方法中,我們定義了子類別「ClassShow」的物件來呼叫公共方法「prnt()」。在這裡,子類別也是公共的。
多用於繼承的情況下,控制父類別成員和對應子類別成員的存取。它允許在當前套件之外存取元素,但只能存取類別的直接子類別。在這裡,包是保存一組類別的容器。
受保護存取修飾符的一些範例 -
protected int data1 = 5; protected double data2 = 5.55;
這裡,變數被宣告為受保護的。
以下範例說明了 Java 中受保護方法的使用。
class Pack { protected void prnt() { String msg = "Tutorials Point!!"; System.out.print("Welcome to " + msg); } } public class ClassShow extends Pack { public static void main(String args[]) { // creating object of child class ClassShow obj = new ClassShow(); // method calling through object of child class obj.prnt(); } }
Welcome to Tutorials Point!!
在上面的程式碼中,「Pack」類別是「ClassShow」的父類別。在父類別中,我們宣告了一個名為「prnt()」的受保護方法來列印一條簡單的訊息。在子類別的main()方法中,我們定義了子類別‘ClassShow’的物件來呼叫受保護的方法‘prnt()’。
從上面的討論中,我們可以得出公共和私有存取修飾符之間的以下區別 -
公開 |
受保護 |
---|---|
我們需要使用關鍵字「public」來指定成員公開。 |
我們使用「protected」關鍵字來指定成員受到保護。 |
我們可以將任何類別定義為公共類別。 |
類別不能被定義為受保護的。 |
公共成員可以被包內和包外的任何類別存取。 |
受保護的成員可以在套件內以及其他套件中存取。但對於其他包,它只能被繼承的類別存取。 |
頂級和會員均適用。 |
僅適用於會員等級。 |
我們首先定義了 public 和 protected 存取修飾符,在後面的部分中,我們透過各自的範例詳細解釋了它們。最後,我們討論了它們之間的一些差異。
以上是Java中的公用(public)與受保護(protected)存取修飾符的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!