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