Java 建構子:
Java 建構函式或 Java 中的建構子是用來建構程式中某些內容的術語。 Java中的建構子是一種特殊的方法,用來初始化物件。創建類別的物件時會呼叫建構函數。它可用於設定物件屬性的初始值。
Java 中的建構子是什麼? :
在Java中,建構子是類似方法的程式碼區塊。當創建類別的實例時調用它。呼叫建構函式時,會在記憶體中分配物件的記憶體。它是一種特殊類型的方法,用於初始化物件。每次使用 new() 關鍵字建立物件時,都會至少呼叫一個建構函式。
了解如何有效地使用建構函數可以顯著提高您的 Java 程式設計技能,尤其是在處理複雜的應用程式時。掌握建構函數的細微差別對於建立可擴展和可維護的軟體至關重要。
Java 建構子範例:
// Driver Class class Geeks { // Constructor Geeks() { super(); System.out.println("Constructor Called"); } // main function public static void main(String[] args) { Geeks geek = new Geeks(); } }
** Java 建構子與 Java 方法有何不同? **
1.建構函式必須與定義它的類別具有相同的名稱,這對於Java中的方法來說不是必需的。
2.建構函式不傳回任何類型,而方法有傳回類型,如果不傳回任何值,則傳回 void。
3.建構函式在物件建立時只被呼叫一次,而方法可以被呼叫任意多次。
什麼時候呼叫 Java 建構子?
每次使用 new() 關鍵字建立物件時,都會呼叫至少一個建構函式(可以是預設建構函式)來為相同類別的資料成員指派初始值。建構子的編寫規則如下:
1.類別的建構子必須與其所在的類別同名。
2.Java中的建構子不能是abstract、final、static或Synchronized。
3.可以在建構函式宣告中使用存取修飾符來控制其存取權限,即哪個其他類別可以呼叫該建構函式。
Java 中的建構子類型(TBD)
現在是討論建構函式型別的正確時機,因此 Java 中的建構子主要分為以下三種:
3.複製建構子
參考:https://www.geeksforgeeks.org/constructors-in-java/
Java 中的建構子重載:
在Java中,我們可以像方法一樣重載建構子。建構函式重載可以定義為具有多個具有不同參數的建構函式的概念,以便每個建構函式可以執行不同的任務。
這裡,我們要了解建構子重載的目的。有時,我們需要使用多個建構函式來初始化類別的不同值。
我們也必須注意到,當我們在類別中不使用任何建構子時,java 編譯器會呼叫預設建構函式。但是,如果我們在類別中使用了任何建構函數,無論它是預設建構函數還是參數化建構函數,都不會呼叫預設建構函數。在這種情況下,java 編譯器會拋出異常,指出建構子未定義。
在建構子重載使用 this ():
但是,我們可以在建構函式中使用 this 關鍵字,它可以用來呼叫同一個類別的另一個建構子。
範例
// Driver Class class Geeks { // Constructor Geeks() { super(); System.out.println("Constructor Called"); } // main function public static void main(String[] args) { Geeks geek = new Geeks(); } }
參考:https://www.javatpoint.com/constructor-overloading-in-java
節目:
public class Student { //instance variables of the class int id,passoutYear; String name,contactNo,collegeName; Student(String contactNo, String collegeName, int passoutYear){ this.contactNo = contactNo; this.collegeName = collegeName; this.passoutYear = passoutYear; } Student(int id, String name){ this("9899234455", "IIT Kanpur", 2018); this.id = id; this.name = name; } public static void main(String[] args) { //object creation Student s = new Student(101, "John"); System.out.println("Printing Student Information: \n"); System.out.println("Name: "+s.name+"\nId: "+s.id+"\nContact No.: "+s.contactNo+"\nCollege Name: "+s.contactNo+"\nPassing Year: "+s.passoutYear); } }
輸出:
public class SuperMarket { //class specific static String name = "SB SuperMarket"; static int doorNo = 10; static boolean open = true; //non-static ---> Instance specific String product_name; int price, discount; SuperMarket(String product_name, int price, int discount) { this.product_name = product_name; this.price = price; this.discount = discount; } public static void main(String[] args) { SuperMarket product1 = new SuperMarket("cinthol", 22,2); SuperMarket product2 = new SuperMarket("biscuits",30,5); SuperMarket product3 = new SuperMarket("cake",10,1); product1.sell(); product2.sell(); product3.sell(); product2.return_product(); } public void return_product() { System.out.println("returning "+product_name); } public void sell() { System.out.println(product_name); System.out.println(price); System.out.println(discount); } }
以上是Java 建構函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!