java構(gòu)造器 默認(rèn)構(gòu)造方法及參數(shù)化構(gòu)造方法
1、構(gòu)造器
構(gòu)造器也叫構(gòu)造方法、構(gòu)造函數(shù),是一種特殊類型的方法,負(fù)責(zé)類中成員變量(域)的初始化。構(gòu)造器的用處是在創(chuàng)建對象時執(zhí)行初始化,當(dāng)創(chuàng)建一個對象時,系統(tǒng)會為這個對象的實(shí)例進(jìn)行默認(rèn)的初始化。
有兩種類型的構(gòu)造方法:
- 1、默認(rèn)構(gòu)造方法(無參數(shù)構(gòu)造方法)
- 2、參數(shù)化構(gòu)造方法
1.1 權(quán)限修飾符是public
權(quán)限修飾符是public
,表示內(nèi)部屬性能被其他類訪問到。
java
默認(rèn)的構(gòu)造方法是無參的。
Java編譯器會自動創(chuàng)建無參構(gòu)造函數(shù),因此在類中,無參構(gòu)造即使沒有,我們也可省略不寫。實(shí)例化對象時無需賦值
新建一個Person
類,再用new實(shí)例化person
對象。運(yùn)行后會生成一個Person.class
對象。
public class Demo02 { public static void main(String[] args) { //new 實(shí)例化一個對象 //一個類就算什么也不寫,也存在一個方法,且方法名與類名相同。 Person p=new Person();創(chuàng)建對象,括號內(nèi)無需賦值,沒賦值的情況下,字符類型默認(rèn)值為null,數(shù)值類型默認(rèn)值為0 } } public class Person { }
若類中什么也不寫,運(yùn)行之后,默認(rèn)多一個Person()
方法,下面是Person.class
的代碼:
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package Demo01; public class Person { public Person() { } }
故:一個類就算什么也不寫,他也會存在一個默認(rèn)的方法
參數(shù)化構(gòu)造方法:
- 參數(shù)化構(gòu)造方法用于為不同對象提供不同初始化的值。
- 倘若類中已存在有參構(gòu)造函數(shù),則編譯器不再提供默認(rèn)無參構(gòu)造。實(shí)例化對象時需賦值,不然報錯
1.2 顯示定義構(gòu)造器
package Demo01; public class Demo02 { public static void main(String[] args) { //new 實(shí)例化一個對象 //一個類就算什么也不寫,也存在一個方法,且方法名與類名相同。 Person p=new Person(); System.out.println(p.name);//null } }
package Demo01; public class Person { String name; //實(shí)例化初始值 //1、使用new關(guān)鍵字,本質(zhì)實(shí)在構(gòu)造器 //2、用來初始化值 public Person(){//默認(rèn)構(gòu)造器 this.name="xiaoming"; } //有參構(gòu)造:一旦定義了有參構(gòu)造,無參構(gòu)造就必須顯示定義,否則無效,也是重載 public Person(String name){ this.name=name; } //快捷鍵: alt + insert 生成構(gòu)造器,自動生成構(gòu)造器,有參無參可自行選擇。 }
總結(jié):
構(gòu)造器:
- 1、和類名相同
- 2、沒有返回值
作用:
- 1、new 本質(zhì)在調(diào)用構(gòu)造方法
- 2、初始化對象的值
注意:定義構(gòu)造之后,如果想使用無參構(gòu)造,顯示的定義一個無參構(gòu)造,否則不能使用無參的構(gòu)造方法ALT + INSERT 生成構(gòu)造器
到此這篇關(guān)于java構(gòu)造器 默認(rèn)構(gòu)造方法及參數(shù)化構(gòu)造方法的文章就介紹到這了,更多相關(guān)java構(gòu)造器 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringMVC4.3?HandlerExceptionResolver異常處理源碼解析
這篇文章主要為大家介紹了SpringMVC4.3?HandlerExceptionResolver異常處理源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>2023-09-09SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能
這篇文章主要介紹了SpringBoot整合RabbitMQ, 實(shí)現(xiàn)生產(chǎn)者與消費(fèi)者的功能,幫助大家更好得理解和學(xué)習(xí)使用SpringBoot框架,感興趣的朋友可以了解下2021-03-03idea中springboot項(xiàng)目連接數(shù)據(jù)庫報錯的原因解析
這篇文章主要介紹了idea中springboot項(xiàng)目連接數(shù)據(jù)庫報錯的原因解析,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12通過實(shí)例解析Spring Ioc項(xiàng)目實(shí)現(xiàn)過程
這篇文章主要介紹了Spring Ioc項(xiàng)目實(shí)踐過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06