您好,登錄后才能下訂單哦!
java中的構(gòu)造函數(shù)有哪些類型?相信很多沒有經(jīng)驗(yàn)的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
1.無參構(gòu)造函數(shù)
不帶入?yún)⒌臉?gòu)造函數(shù)叫無參構(gòu)造函數(shù),對類的成員初始化有兩種方法:
(1)在類成員變量聲明時(shí)進(jìn)行初始化
public class MyClass { private String name = "Jerry"; private int id = 1; public MyClass() { } }
(2)在無參構(gòu)造函數(shù)的方法體里對類成員變量初始化
public class MyClass { private String name; private int id; public MyClass() { this.name = "Jerry"; this.id = 1; } }
帶入?yún)⒌臉?gòu)造函數(shù)叫有參構(gòu)造函數(shù)。
public class Employee { int empId; String empName; //parameterized constructor with two parameters Employee(int id, String name){ this.empId = id; this.empName = name; } void info(){ System.out.println("Id: "+empId+" Name: "+empName); } public static void main(String args[]){ Employee obj1 = new Employee(10245,"Chaitanya"); Employee obj2 = new Employee(92232,"Negan"); obj1.info(); obj2.info(); } }
輸出:
Id: 10245 Name: Chaitanya Id: 92232 Name: Negan
當(dāng)類里沒有顯式地定義代碼來實(shí)現(xiàn)任何構(gòu)造函數(shù)時(shí),Java編譯器將會在編譯的字節(jié)碼(.class文件)里面為這個(gè)類插入默認(rèn)構(gòu)造函數(shù)。由于是在編譯階段插入,因此在源文件(.java)里是不會找到默認(rèn)構(gòu)造函數(shù)的代碼的。
默認(rèn)構(gòu)造函數(shù)形式上類似無參構(gòu)造函數(shù)(都沒有入?yún)ⅲ嵌卟⒉荒軇澋忍?,區(qū)別如下:
默認(rèn)構(gòu)造函數(shù)方法體為空,無參構(gòu)造函數(shù)方法體可以為空也可以不為空;
只要類里顯式的創(chuàng)建了一個(gè)構(gòu)造函數(shù),比如一個(gè)無參構(gòu)造函數(shù),編譯器都不會再為這個(gè)類創(chuàng)建默認(rèn)構(gòu)造函數(shù)了。
看完上述內(nèi)容,你們掌握java中的構(gòu)造函數(shù)有哪些類型的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。