點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
點(diǎn)擊查看:2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程第六章匯總
6.12 匿名類(lèi)
在有些場(chǎng)合下,你可能需要定義一個(gè)類(lèi),但在程序中卻從來(lái)不會(huì)定義它的對(duì)象,只是用來(lái)把這個(gè)類(lèi)的對(duì)象作為自變量直接傳遞給方法。在這種情況下,只要你的類(lèi)擴(kuò)展于一個(gè)現(xiàn)有的類(lèi),或者實(shí)現(xiàn)了一個(gè)接口,就可選擇將類(lèi)定義為匿名類(lèi)(anonyrnvus class),一個(gè)匿名類(lèi)的定義出現(xiàn)在建立和使用這個(gè)類(lèi)對(duì)象的語(yǔ)句中的一個(gè)新表達(dá)式中,使之不必提供類(lèi)的名字。
我們通過(guò)一個(gè)例子說(shuō)明實(shí)現(xiàn)它的方法。假設(shè)我們想定義一個(gè)類(lèi)對(duì)象,它只在實(shí)現(xiàn)接口ActionListener時(shí)使用一次。我們應(yīng)該像下面這樣使用:
pickButton.addActionListener(new ActionListener()
{
//Code to defire the class
//that implements the ActionListener interface
}
};
類(lèi)定義出現(xiàn)在作為自變量傳遞給addActionListener()方法的新表達(dá)式中。這個(gè)方法需要一個(gè)ActionListener類(lèi)型的引用,也就是一個(gè)實(shí)現(xiàn)ActianListener接口的類(lèi)的引用,括號(hào)后面的接口名表明我們正在建立一個(gè)這種類(lèi)型的對(duì)象,類(lèi)定義的詳細(xì)內(nèi)容在一對(duì)大括號(hào)之間。匿名類(lèi)可以包含數(shù)據(jù)成員和方法,然而,很顯然,不能包含構(gòu)造函數(shù),這是因?yàn)轭?lèi)沒(méi)有名字。在這里,ActionListener接口聲明的所有方法都需要定義。
如果匿名類(lèi)擴(kuò)展于一個(gè)現(xiàn)有的類(lèi),其語(yǔ)法完全相同。此時(shí),你可以調(diào)用基類(lèi)中的構(gòu)造函數(shù),若不是默認(rèn)的構(gòu)造函數(shù),你可以通過(guò)在基類(lèi)名字后面的括號(hào)之間說(shuō)明自變量來(lái)把它們傳遞給方法。如同前面的例子一樣,匿名類(lèi)的定義必須出現(xiàn)在大括號(hào)之間。
相關(guān)推薦:
2015計(jì)算機(jī)等級(jí)考試二級(jí)Java入門(mén)教程章節(jié)匯總
2014計(jì)算機(jī)二級(jí)Java程序設(shè)計(jì)真題及答案(網(wǎng)友版)
考試吧特別策劃:2015年計(jì)算機(jī)等級(jí)考試報(bào)考指南