Java 建構函數
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中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

公司安全軟件導致部分應用無法正常運行的排查與解決方法許多公司為了保障內部網絡安全,會部署安全軟件。 ...

將姓名轉換為數字以實現排序的解決方案在許多應用場景中,用戶可能需要在群組中進行排序,尤其是在一個用...

系統對接中的字段映射處理在進行系統對接時,常常會遇到一個棘手的問題:如何將A系統的接口字段有效地映�...

在使用MyBatis-Plus或其他ORM框架進行數據庫操作時,經常需要根據實體類的屬性名構造查詢條件。如果每次都手動...

在使用IntelliJIDEAUltimate版本啟動Spring...

Java對象與數組的轉換:深入探討強制類型轉換的風險與正確方法很多Java初學者會遇到將一個對象轉換成數組的�...

電商平台SKU和SPU表設計詳解本文將探討電商平台中SKU和SPU的數據庫設計問題,特別是如何處理用戶自定義銷售屬...

Redis緩存方案如何實現產品排行榜列表的需求?在開發過程中,我們常常需要處理排行榜的需求,例如展示一個�...
