Java構(gòu)造方法和直接創(chuàng)建對象是Java編程語言中的兩個基本概念。構(gòu)造方法是一種特殊的方法,可以在創(chuàng)建類的實例時自動調(diào)用,用來初始化對象的屬性值。直接創(chuàng)建對象則是從程序中直接創(chuàng)建一個對象,這個對象不會執(zhí)行任何初始化操作。
構(gòu)造方法包含一個方法頭和方法體兩部分。構(gòu)造方法的方法名必須與類名完全相同,并且沒有返回值類型。構(gòu)造方法可以被重載,即同一個類中可以定義多個構(gòu)造方法,只要它們的參數(shù)列表不同即可。
public class Dog { private String name; private int age; //默認(rèn)構(gòu)造方法 public Dog() { name = "無名犬"; age = 0; } //有參構(gòu)造方法 public Dog(String name, int age) { this.name = name; this.age = age; } public void bark() { System.out.println(name + "正在汪汪叫..."); } } //使用構(gòu)造方法創(chuàng)建對象 Dog dog1 = new Dog(); //自動調(diào)用默認(rèn)構(gòu)造方法 Dog dog2 = new Dog("旺旺", 3); //自動調(diào)用有參構(gòu)造方法
直接創(chuàng)建對象則使用new關(guān)鍵字。直接創(chuàng)建的對象不會執(zhí)行任何初始化操作,因此需要在程序中手動設(shè)置對象的屬性值。
public class Cat { private String name; private int age; public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void mew() { System.out.println(name + "正在喵喵叫..."); } } //直接創(chuàng)建對象 Cat cat = new Cat(); cat.setName("小花"); cat.setAge(2); cat.mew();
需要注意的是,在Java中,每個類都必須有至少一個構(gòu)造方法。如果沒有顯示地定義構(gòu)造方法,則默認(rèn)會生成一個無參數(shù)的構(gòu)造方法。因此,可以使用new關(guān)鍵字直接創(chuàng)建對象,但是不能保證對象屬性的正確性。