首頁 >Java >java教程 >Java 建構函數

Java 建構函數

DDD
DDD原創
2025-01-06 03:47:401007瀏覽

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 中的建構子主要分為以下三種:

Java Constructors
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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn