java構造函數的三種類型總結

我們說構造函數能處理參數的問題,但其實也要分三種情況進行討論。目前有三種類型:無參、有參和默認。根據不同的參數情況,需要我們分別進行構造函數的討論。這裡重點是無參構造函數的初始化也要分兩種方法進行分析。下面我們就這三種不同的構造函數類型分別為大傢進行展示。

1.無參構造函數

不帶入參的構造函數叫無參構造函數,對類的成員初始化有兩種方法:

(1)在類成員變量聲明時進行初始化

public class MyClass {
 private String name = "Jerry";
 private int id = 1;
 public MyClass()
 {
 }
}

(2)在無參構造函數的方法體裡對類成員變量初始化

public class MyClass {
 private String name;
 private int id;
 public MyClass()
 {
  this.name = "Jerry";
  this.id = 1;
 }
}

2.有參構造函數

帶入參的構造函數叫有參構造函數。

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

當類裡沒有顯式地定義代碼來實現任何構造函數時,Java編譯器將會在編譯的字節碼(.class文件)裡面為這個類插入默認構造函數。由於是在編譯階段插入,因此在源文件(.java)裡是不會找到默認構造函數的代碼的。

3.默認構造函數

默認構造函數形式上類似無參構造函數(都沒有入參),但是二者並不能劃等號,區別如下:

默認構造函數方法體為空,無參構造函數方法體可以為空也可以不為空;

隻要類裡顯式的創建瞭一個構造函數,比如一個無參構造函數,編譯器都不會再為這個類創建默認構造函數瞭。

到此這篇關於java構造函數的三種類型總結的文章就介紹到這瞭,更多相關java構造函數的類型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: