1、構(gòu)造器
構(gòu)造器也叫構(gòu)造方法、構(gòu)造函數(shù),是一種特殊類型的方法,負(fù)責(zé)類中成員變量(域)的初始化。構(gòu)造器的用處是在創(chuàng)建對(duì)象時(shí)執(zhí)行初始化,當(dāng)創(chuàng)建一個(gè)對(duì)象時(shí),系統(tǒng)會(huì)為這個(gè)對(duì)象的實(shí)例進(jìn)行默認(rèn)的初始化。
有兩種類型的構(gòu)造方法:
- 1、默認(rèn)構(gòu)造方法(無(wú)參數(shù)構(gòu)造方法)
- 2、參數(shù)化構(gòu)造方法
1.1 權(quán)限修飾符是public
權(quán)限修飾符是public
,表示內(nèi)部屬性能被其他類訪問(wèn)到。
java
默認(rèn)的構(gòu)造方法是無(wú)參的。
Java編譯器會(huì)自動(dòng)創(chuàng)建無(wú)參構(gòu)造函數(shù),因此在類中,無(wú)參構(gòu)造即使沒(méi)有,我們也可省略不寫(xiě)。實(shí)例化對(duì)象時(shí)無(wú)需賦值
新建一個(gè)Person
類,再用new實(shí)例化person
對(duì)象。運(yùn)行后會(huì)生成一個(gè)Person.class
對(duì)象。
1
2
3
4
5
6
7
8
9
10
11
|
public class Demo02 { public static void main(String[] args) { //new 實(shí)例化一個(gè)對(duì)象 //一個(gè)類就算什么也不寫(xiě),也存在一個(gè)方法,且方法名與類名相同。 Person p= new Person();創(chuàng)建對(duì)象,括號(hào)內(nèi)無(wú)需賦值,沒(méi)賦值的情況下,字符類型默認(rèn)值為 null ,數(shù)值類型默認(rèn)值為 0 } } public class Person { } |
若類中什么也不寫(xiě),運(yùn)行之后,默認(rèn)多一個(gè)Person()
方法,下面是Person.class
的代碼:
1
2
3
4
5
6
7
8
9
10
11
|
// // Source code recreated from a .class file by IntelliJ IDEA // (powered by Fernflower decompiler) // package Demo01; public class Person { public Person() { } } |
故:一個(gè)類就算什么也不寫(xiě),他也會(huì)存在一個(gè)默認(rèn)的方法
參數(shù)化構(gòu)造方法:
- 參數(shù)化構(gòu)造方法用于為不同對(duì)象提供不同初始化的值。
- 倘若類中已存在有參構(gòu)造函數(shù),則編譯器不再提供默認(rèn)無(wú)參構(gòu)造。實(shí)例化對(duì)象時(shí)需賦值,不然報(bào)錯(cuò)
1.2 顯示定義構(gòu)造器
1
2
3
4
5
6
7
8
9
10
|
package Demo01; public class Demo02 { public static void main(String[] args) { //new 實(shí)例化一個(gè)對(duì)象 //一個(gè)類就算什么也不寫(xiě),也存在一個(gè)方法,且方法名與類名相同。 Person p= new Person(); System.out.println(p.name); //null } } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
package Demo01; public class Person { String name; //實(shí)例化初始值 //1、使用new關(guān)鍵字,本質(zhì)實(shí)在構(gòu)造器 //2、用來(lái)初始化值 public Person(){ //默認(rèn)構(gòu)造器 this .name= "xiaoming" ; } //有參構(gòu)造:一旦定義了有參構(gòu)造,無(wú)參構(gòu)造就必須顯示定義,否則無(wú)效,也是重載 public Person(String name){ this .name=name; } //快捷鍵: alt + insert 生成構(gòu)造器,自動(dòng)生成構(gòu)造器,有參無(wú)參可自行選擇。 } |
總結(jié):
構(gòu)造器:
- 1、和類名相同
- 2、沒(méi)有返回值
作用:
- 1、new 本質(zhì)在調(diào)用構(gòu)造方法
- 2、初始化對(duì)象的值
注意:定義構(gòu)造之后,如果想使用無(wú)參構(gòu)造,顯示的定義一個(gè)無(wú)參構(gòu)造,否則不能使用無(wú)參的構(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)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://blog.csdn.net/weixin_45804632/article/details/120643936