java構(gòu)造函數(shù)的三種類型總結(jié)
我們說構(gòu)造函數(shù)能處理參數(shù)的問題,但其實(shí)也要分三種情況進(jìn)行討論。目前有三種類型:無參、有參和默認(rèn)。根據(jù)不同的參數(shù)情況,需要我們分別進(jìn)行構(gòu)造函數(shù)的討論。這里重點(diǎn)是無參構(gòu)造函數(shù)的初始化也要分兩種方法進(jìn)行分析。下面我們就這三種不同的構(gòu)造函數(shù)類型分別為大家進(jìn)行展示。
1.無參構(gòu)造函數(shù)不帶入?yún)⒌臉?gòu)造函數(shù)叫無參構(gòu)造函數(shù),對(duì)類的成員初始化有兩種方法:
(1)在類成員變量聲明時(shí)進(jìn)行初始化
public class MyClass { private String name = 'Jerry'; private int id = 1; public MyClass() { }}
(2)在無參構(gòu)造函數(shù)的方法體里對(duì)類成員變量初始化
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 parametersEmployee(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: ChaitanyaId: 92232 Name: Negan
當(dāng)類里沒有顯式地定義代碼來實(shí)現(xiàn)任何構(gòu)造函數(shù)時(shí),Java編譯器將會(huì)在編譯的字節(jié)碼(.class文件)里面為這個(gè)類插入默認(rèn)構(gòu)造函數(shù)。由于是在編譯階段插入,因此在源文件(.java)里是不會(huì)找到默認(rèn)構(gòu)造函數(shù)的代碼的。
3.默認(rèn)構(gòu)造函數(shù)默認(rèn)構(gòu)造函數(shù)形式上類似無參構(gòu)造函數(shù)(都沒有入?yún)ⅲ嵌卟⒉荒軇澋忍?hào),區(qū)別如下:
默認(rèn)構(gòu)造函數(shù)方法體為空,無參構(gòu)造函數(shù)方法體可以為空也可以不為空;
只要類里顯式的創(chuàng)建了一個(gè)構(gòu)造函數(shù),比如一個(gè)無參構(gòu)造函數(shù),編譯器都不會(huì)再為這個(gè)類創(chuàng)建默認(rèn)構(gòu)造函數(shù)了。
到此這篇關(guān)于java構(gòu)造函數(shù)的三種類型總結(jié)的文章就介紹到這了,更多相關(guān)java構(gòu)造函數(shù)的類型內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)2. ASP.NET MVC遍歷驗(yàn)證ModelState的錯(cuò)誤信息3. jsp網(wǎng)頁實(shí)現(xiàn)貪吃蛇小游戲4. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向5. CSS hack用法案例詳解6. asp中response.write("中文")或者js中文亂碼問題7. 將properties文件的配置設(shè)置為整個(gè)Web應(yīng)用的全局變量實(shí)現(xiàn)方法8. PHP設(shè)計(jì)模式中工廠模式深入詳解9. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說明10. ASP實(shí)現(xiàn)加法驗(yàn)證碼
