?
構(gòu)造器(constructors)或者稱為“構(gòu)造方法”,是在使用操作符new來(lái)創(chuàng)建一個(gè)對(duì)象的時(shí)候被調(diào)用的。構(gòu)造器可以被看做是一種特殊的方法(methods)。構(gòu)造器主要有以下三大特點(diǎn):
一、構(gòu)造器的名字和其所在類的類名必須一樣;
二、構(gòu)造器沒(méi)有返回值類型,也不包含void;
三、在調(diào)用構(gòu)造器來(lái)創(chuàng)建對(duì)象的時(shí)候,要使用操作符new;構(gòu)造器起到的作用就是將對(duì)象初始化(initializing objects)。
定義一個(gè)構(gòu)造器,通常使用以下語(yǔ)句:
public ClassName (parameters)
{
????????//constructor body
}
?
當(dāng)需要從一個(gè)類構(gòu)造對(duì)象時(shí),可以使用操作符new來(lái)對(duì)構(gòu)造器進(jìn)行調(diào)用:
new ClassName (arguments);
一般情況下,一個(gè)類會(huì)提供一個(gè)沒(méi)有任何參數(shù)(parameters)的構(gòu)造器,這樣的構(gòu)造器被稱為無(wú)參構(gòu)造器(no-arg或no-argument constructor)。
和一般方法一樣,構(gòu)造器也可以重載(overloading)。也就是說(shuō),一個(gè)類中可以有多個(gè)同名的構(gòu)造器,只要它們擁有不同的簽名(signatures)。
當(dāng)且僅當(dāng)一個(gè)類中沒(méi)有明確定義任何構(gòu)造器的時(shí)候,這個(gè)類中就隱含定義一個(gè)方法體(method body)為空的無(wú)參數(shù)構(gòu)造器。
如果一個(gè)類中定義有實(shí)例變量(instance variables),一般情況下,我們最好在構(gòu)造器中將這些實(shí)例變量進(jìn)行初始化。類中定義的靜態(tài)常量(class constants)則通常在定義的時(shí)候就會(huì)對(duì)其進(jìn)行初始化。對(duì)于原始數(shù)據(jù)類型的實(shí)例變量來(lái)說(shuō),如果沒(méi)有在構(gòu)造器中對(duì)它們進(jìn)行初始化,那么它們會(huì)有相應(yīng)的默認(rèn)值。
在子類(subclass)中,關(guān)鍵詞super指代父類(superclass)。當(dāng)需要調(diào)用父類中的構(gòu)造器時(shí),我們可以使用super()和super(arguments)來(lái)進(jìn)行調(diào)用。super()是用來(lái)調(diào)用父類中的無(wú)參構(gòu)造器;super(arguments)是用來(lái)調(diào)用父類中的與參數(shù)匹配的構(gòu)造器。而且,在子類的構(gòu)造器中使用super()或者super(arguments)的時(shí)候,這兩個(gè)語(yǔ)句都必須出現(xiàn)在子類的構(gòu)造器的第一行。
還需要特別注意的是:即便一個(gè)子類的構(gòu)造器中并沒(méi)有明確使用super()或者super(arguments)來(lái)調(diào)用父類的構(gòu)造器,Java編譯器也會(huì)自動(dòng)地先調(diào)用父類中的無(wú)參構(gòu)造器。
最后,我們留一道小題:
public class Father?
{
public Father()
{
System.out.println("Father");
}
}
public class Son extends Father
{
public Son()
{
System.out.println("Son");
}
}
public class Grandson extends Son
{
public Grandson()
{
super();
System.out.println("Grandson");
}
}
上面建立了3個(gè)類,如果我們使用下面語(yǔ)句創(chuàng)建一個(gè)對(duì)象:
Grandson grandson = new Grandson();
請(qǐng)問(wèn)輸出的結(jié)果是什么?
以上就是關(guān)于【Constructors - AP CS A考點(diǎn)總結(jié) ?】的解答,如需了解學(xué)校/賽事/課程動(dòng)態(tài),可至翰林教育官網(wǎng)獲取更多信息。
往期文章閱讀推薦:
新賽季AP如何“彎道超車”?拒絕無(wú)效內(nèi)卷!AP科學(xué)選課指南來(lái)了!
CB官宣重磅新規(guī)!2027年AP考試開考時(shí)間新規(guī)解讀+大考日程發(fā)布!大陸報(bào)名搶位開啟行動(dòng),翰林3大考點(diǎn)幫你提前鎖位!

? 2026. All Rights Reserved. 滬ICP備2023009024號(hào)-1