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!
推薦閱讀:
- Spring框架的JdbcTemplate使用
- Spring Bean屬性註入的兩種方式詳解
- SpringBoot2 JPA解決懶加載異常的問題
- MyBatis 動態SQL全面詳解
- 詳細總結Java組合模式