Java中的關鍵字「private」用於建立java程式碼區塊中類別、方法或變數的可存取性限制。如果一個類別、方法或變數在程式中稱為私有,則表示特定的類別、方法或變數不能被該類別或方法的外部訪問,這與公共方法不同。 Private 關鍵字通常在 Java 中完全封裝的類別中使用。
Java 中的私人關鍵字在特定類別中工作。在課堂之外無法訪問它。它在類別/類別和介面/介面之外不起作用。如果類別的成員是 PRIVATE 並且在完全封裝的類別中也是如此,則 Private 關鍵字效果很好。 Private 關鍵字或變數或方法也可以使用某些存取修飾符來覆寫子類別/類,以呼叫類別外部的 PRIVATE METHOD。這樣,私有關鍵字也可以只使用私有存取修飾符在類別之外運作。
開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
以下是一些私有修飾符的範例,如下:
這裡我們以 Private Access Modifier 為例,由於從類別 AB 存取私有資料成員,此範例顯示編譯錯誤,如下例所示。私有方法或私有成員只能在特定類別中存取。
代碼:
class AB{ private double number = 100; private int squares(int a){ return a*a; } } public class Main{ public static void main(String args[]){ AB obj = new AB(); System.out.println(obj.number); System.out.println(obj.squares(10)); } }
輸出:
這是說明在以下程式中使用 PRIVATE 關鍵字的範例:
代碼:
class Emp{ private int id1; private String name14; private int age14; public int getId1() { return id1; } public void setId(int id1) { this.id1 = id1; } public String getName14() { return name14; } public void setName14(String name14) { this.name14 = name14; } public int getAge14() { return age14; } public void setAge14(int age14) { this.age14 = age14; } } public class Main{ public static void main(String args[]){ Emp e=new Emp(); e.setId(1473); e.setName14("Pavan Kumar Sake"); e.setAge14(24); System.out.println(e.getId1()+" "+e.getName14()+" "+e.getAge14()); } }
輸出:
在此範例中,您可以看到如何使用預設的存取修飾符將 PRIVATE METHOD 覆寫到子類別。我們甚至不允許從子類別呼叫父類別方法。
代碼:
class ABC{ private void msg() { System.out.println("Hey Buddy this is the parent class method"); //Output of the Private Method } } public class Main extends ABC{ // Private method is overridden using the access modifier void msg() { System.out.println("Buddy this is the child class method"); } public static void main(String args[]){ Main obj=new Main(); obj.msg(); } }
輸出:
在此範例中,我說明不能在類別外部呼叫/呼叫 PRIVATE METHOD。現在,私有方法透過更改類別運行時行為從外部類別呼叫。
代碼:
import java.lang.reflect.Method; class ABC { private void display() { System.out.println("Hey Now private method is invoked/Called"); } } public class Main{ public static void main(String[] args)throws Exception{ Class d = Class.forName("ABC"); Object p= d.newInstance(); Method n =d.getDeclaredMethod("display", null); n.setAccessible(true); n.invoke(p, null); } }
輸出:
這是 Java 程式語言中私有方法和欄位的範例。這裡私有方法在編譯時使用靜態綁定,甚至不能被覆寫。不要與 Private 變數輸出混淆,因為 Private 變數實際上可以在內部類別內部存取。如果在類別外部呼叫 PRIVATE 變量,編譯器肯定會產生錯誤。
代碼:
public class Main { private String i_m_private1 = " \n Hey Buddy I am a private member and i am not even accessible outside of this Class"; private void privateMethod1() { System.out.println("Outer Class Private Method"); } public static void main(String args[]) { Main outerClass = new Main(); NestedClass nestc = outerClass.new NestedClass(); nestc.showPrivate(); //This syntax shows private method/methods are accessible inside the class/inner class. outerClass = nestc; nestc.privateMethod1(); //It don't call/invoke private method from the inner class because // you can not override the private method inside the inner class. } class NestedClass extends Main { public void showPrivate() { System.out.println("Now we are going to access Outer Class Private Method: " + i_m_private1); privateMethod1(); } private void privateMethod1() { System.out.println("Nested Class's Private Method"); } } }
輸出:
下面我們將解釋在 Java 中使用私有方法/欄位的優點。
以下是您應該了解的一些私人規則和規定。
主題即將結束,我們實際上很高興知道在 Java 中使用 Private Keyword 是多麼有用和簡單。在本文中,我希望您了解 private 關鍵字、私有變數、存取修飾符、私有建構函數,以及如何在程式中使用這些私有關鍵字。
以上是Java 中的私有的詳細內容。更多資訊請關注PHP中文網其他相關文章!