資源描述:
《JAVA學(xué)習(xí)--第6章高級(jí)類特性》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、江蘇大學(xué)計(jì)算機(jī)學(xué)院Version2.0第6章高級(jí)類特性Page2本章內(nèi)容Static關(guān)鍵字創(chuàng)建final類、方法和變量創(chuàng)建和使用枚舉的類型使用靜態(tài)導(dǎo)入語句創(chuàng)建抽象類和方法創(chuàng)建和使用接字符串相關(guān)類(String、StringBuffer、StringBuilder)Math類(不重要)File類Date類、Calendar類Page3static關(guān)鍵字在類中,用static聲明的成員變量為靜態(tài)成員變量,它為該類的公用變量,在第一次使用時(shí)被初始化,對(duì)于該類的所以對(duì)象來說,static成員變量只有一份。publicclassCou
2、nt{privateintserialNumber;publicstaticintcounter=0;publicCount(){counter++;serialNumber=counter;}}publicclassTestCounter{publicstaticvoidmain(String[]args){Count.counter=100;CountC1=newCount();CountC2=newCount();}}static變量在某些方面與其他語言的全局變量類似,Java編程語言中沒有全局變量,但是static變
3、量是一個(gè)可以被類的任何實(shí)例訪問的變量Page4static關(guān)鍵字用static聲明的方法為靜態(tài)方法(又稱類方法),在調(diào)用該方法時(shí),不會(huì)將對(duì)象的引用傳遞給它,所以在static方法中不可訪問非static的成員。靜態(tài)的方法不再是針對(duì)某個(gè)對(duì)象調(diào)用,所以不能訪問非靜態(tài)成員classCount{privateintserialNumber;publicstaticintcounter=0;publicCount(){counter++;serialNumber=counter;}publicstaticintgetCounter()
4、{returncounter;}}publicclassTestCounter{publicstaticvoidmain(String[]args){System.out.println(Count.getCounter());CountC1=newCount();System.out.println(Count.getCounter());}}可以通過對(duì)象引用或類名(不需要實(shí)例化)訪問靜態(tài)成員。Page5Static屬性:publicstaticclass屬性可沒有類的實(shí)例從類的外部進(jìn)行訪問。Static方法:Static
5、方法無需創(chuàng)建類的實(shí)例即可被調(diào)用。Static方法不能訪問實(shí)例變量。Static初始化程序:類可在static塊中包含在方法主體中不存在的代碼。Static塊代碼在類被加載時(shí)僅執(zhí)行一次。通常,static塊用來初始化static(類)屬性。static關(guān)鍵字(續(xù))Page6final關(guān)鍵字final關(guān)鍵字用于安全性原因。它用來創(chuàng)建充當(dāng)標(biāo)準(zhǔn)的類。它實(shí)現(xiàn)了以下限制:不能獲取final類的子類,即final類不能被繼承。不能覆蓋final方法。final變量是常量。在final類中的所有方法和數(shù)據(jù)成員是顯式的。引用類型的final變
6、量,不能引用任何其他變量Page7空final變量final變量不在其聲明中被初始化;其初始化被延遲:空final實(shí)例變量必須在構(gòu)建器中被賦值。空final本地變量可在方法的主體內(nèi)隨時(shí)被設(shè)置。它僅可設(shè)置一次。Page8枚舉的類型enum類型字段由一組固定的常量組成。可使用enum關(guān)鍵字來定義enum類型。例如,指定一周每一天的enum類型:publicenumDay{SUNDAY,MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY}enum類型只能取特定值的一個(gè)。所有enums
7、從java.lang.Enum顯示擴(kuò)展。因?yàn)镴ava不支持多重繼承,enum不能擴(kuò)展為任何別的內(nèi)容。Page9靜態(tài)導(dǎo)入J2SE5.0提供靜態(tài)導(dǎo)入功能,能夠不受限制的訪問靜態(tài)成員,而不必使用類的名字限制它們。從類中導(dǎo)入靜態(tài)成員:importstatic..;或importstatic..*;單個(gè)或集中導(dǎo)入成員:importstaticcards.domain.Suit.SPADES;或importstaticcar
8、ds.domain.Suit.*;無需確定靜態(tài)常量的資格:PlayingCardcard1=newPlayingCard(SPADES,2);過度使用靜態(tài)導(dǎo)入功能,使程序不可讀或者無法維持,而且會(huì)破壞其命名空間和所有導(dǎo)入的靜態(tài)成員Page10抽象類用abstract關(guān)鍵字來修飾一個(gè)類時(shí),這