溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java中的構(gòu)造函數(shù)有哪些類型

發(fā)布時(shí)間:2021-01-08 14:36:31 來源:億速云 閱讀:159 作者:Leah 欄目:開發(fā)技術(shù)

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;
 }
}

2.有參構(gòu)造函數(shù)

帶入?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ù)的代碼的。

3.默認(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ù)了。

java中的構(gòu)造函數(shù)有哪些類型

看完上述內(nèi)容,你們掌握java中的構(gòu)造函數(shù)有哪些類型的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(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)容。

AI