JAVA語言程序設(shè)計(jì)第五章_第1頁
JAVA語言程序設(shè)計(jì)第五章_第2頁
JAVA語言程序設(shè)計(jì)第五章_第3頁
JAVA語言程序設(shè)計(jì)第五章_第4頁
JAVA語言程序設(shè)計(jì)第五章_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1 第五章Java高級語言特征 靜態(tài)變量 方法與初始化程序塊 final關(guān)鍵字 抽象類 Interface package 訪問控制 內(nèi)部類 其它 2 類變量 static classvariable 在該類所有實(shí)例之間是共享的 在加載該類時(shí) 只分配一次空間 并初始化 例 classEmployee staticintcom 則運(yùn)行時(shí) 3 類變量 static classvariable 類變量可用來在實(shí)例之間進(jìn)行通信或跟蹤該類實(shí)例的數(shù)目 例 publicclassCount privateintserialNumber privatestaticintcounter 0 publicCount counter serialNumber counter 4 類變量可以是public或private 對于public類型的類變量 可以在類外直接用類名調(diào)用而不需要初始化 PublicclassStaticVar publicstaticintnumber publicclassOtherclass publicvoidmethod intx StaticVar number 類變量 static classvariable 5 類 class static 方法 可以直接被調(diào)用 而不需要生成任何實(shí)例publicclassGeneralFunction publicstaticintaddUp intx inty returnx y publiccalssUseGeneral publicvoidmethod intc GeneralFunction addUp 9 10 6 靜態(tài)初始化程序 沒有存在于任何方法體中的靜態(tài)語句塊 在加載該類時(shí)執(zhí)行且只執(zhí)行一次 publicClassStaticInitDemo staticinti 5 static System out println Staticcode i i publicclassTest publicstaticvoidmain Stringargs System out println Maincode i StaticInitDemo i Staticcode i 5Maincode i 6 7 Final關(guān)鍵字 被定義成final的類不能有子類 例 finalclassEmployee classManagerextendsEmployee 被定義成final的成員方法不能被重寫 被定義成final的成員變量不能改變 該變量實(shí)際上是常量 一般大寫 并賦值 finalintNUMBER 100 8 抽象類 一個(gè)類如果只聲明方法而沒有方法的實(shí)現(xiàn) 則稱為抽象類 必須在聲明中增加abstract關(guān)鍵字 在無方法體的方法前也要加上abstract PublicabstractclassDrawing publicabstractvoiddrawDot intx inty publicvoiddrawLine intx1 inty1 intx2 inty2 調(diào)用drawDot 方法 抽象類也可有普通的成員變量或方法 9 抽象類 抽象類不能直接用來生成實(shí)例 一般可通過定義子類進(jìn)行實(shí)例化 可以生成抽象類的變量 該變量可以指向具體的一個(gè)子類的實(shí)例 AbstractclassEmployee abstractvoidraiseSalary inti classManagerextendsEmployee voidraiseSalary inti Employeee newManager 10 接口interface Interface是在抽象類概念的基礎(chǔ)上演變而來的 一個(gè)interface所有成員方法都是抽象的 并且只能定義staticfinal成員變量 11 Interface的含義 interface定義了一組行為的協(xié)議 兩個(gè)對象之間通過這個(gè)協(xié)議進(jìn)行通信 interface不屬于類層次結(jié)構(gòu) 不相關(guān)的類可以實(shí)現(xiàn)相同的接口 12 Interface示例 13 用implements代替extends聲明子類 該子類中必須實(shí)現(xiàn)接口 及其超類 中的所有方法 例 interfaceSayHello voidprintMessage classSayHelloImplimplementsSayHello voidprintMessage System out println Hello 實(shí)現(xiàn)interface 14 Interface的使用 Interface可以作為一種數(shù)據(jù)類型使用 如 publicclassStockMonitor publicvoidwatchStock StockWatcherwatcher StringtickerSymbol doubledelta 15 Interface中注意問題 不能向interface定義中隨意增加方法 publicinterfaceStockWatcher finalStringsunTicker SUNW finalStringoracleTicker ORCL finalStringciscoTicker CSCO voidvalueChanged StringtickerSymbol doublenewValue voidcurrentValue StringtickerSymbol doublenewValue publicinterfaceStockTrackerextendsStockWatcher voidcurrentValue StringtickerSymbol doublenewValue 16 可以通過實(shí)現(xiàn)接口實(shí)現(xiàn)多重繼承 一個(gè)類可只繼承一個(gè)父類 并實(shí)現(xiàn)多個(gè)接口 interfaceI1 interfaceI2 classE classMextendsEimplementsI1 I2 一個(gè)interface可作為類名使用 實(shí)現(xiàn)多態(tài) 接口interface InterfaceHuman classChineseimplementsHuman classJapaneseimplementsHuman Humane newChinese Humane newJapanese 17 類分組package語句 包 package 是相關(guān)類與接口的一個(gè)集合 它提供訪問控制與命名空間管理 Java平臺中的類與接口都是根據(jù)功能以包組織的 包機(jī)制的好處 程序員容易確定包中的類是相關(guān)的 并且容易根據(jù)所需的功能找到相應(yīng)的類 每個(gè)包都創(chuàng)建一個(gè)新的命名空間 因此不同包中的類名不會沖突 同一個(gè)包中的類之間有比較寬松的訪問控制 18 創(chuàng)建包 用package語句指定源文件中的類屬于一個(gè)特定包 package包名包定義語句在每個(gè)源程序中只能有一條 即一個(gè)類只能屬于一個(gè)包 包定義語句必須在程序的第一行 之前可有空格及注釋 包名用 分隔 19 import語句 將package引入源程序 格式 import包名 import包名 類名 import語句必須在源程序之前 在package聲明之后 package 缺省是package import 缺省是importjava lang 類聲明 20 包名與包中類的存儲位置 包分隔符相當(dāng)于目錄分隔符 包存儲的路徑由包根路徑加上包名指明的路徑組成 包的根路徑由CLASSPATH環(huán)境變量指出 CLASSPATH abc financeDept 21 源文件 java 與類文件 class 的管理 源文件可以按照包名指明的路徑放置 如 類文件也應(yīng)該放在反映包名的一系列目錄下 22 一般將源文件與類文件分別存放 可采用如下方式 源文件 java 與類文件 class 的管理 示例 23 高級訪問控制 成員變量和方法有4種訪問級別 public protected default package private 類有兩種訪問級別 public或default 修飾符的作用范圍 ModifierSameclassSamePackageSubclassUniversepublicYesYesYesYesprotectedYesYesYesdefaultYesYesprivateYes 24 classAlpha privateintiamprivate privatevoidprivateMethod System out println privateMethod classBeta voidaccessMethod Alphaa newAlpha a iamprivate 10 a privateMethod 高級訪問控制 private illegal illegal 25 classAlpha privateintiamprivate booleanisEqualTo AlphaanotherAlpha if this iamprivate anotherAlpha iamprivate returntrue elsereturnfalse 高級訪問控制 注意 訪問控制應(yīng)用于class或type層次 而不是對象層次 26 允許類本身 它的子類 以及同一個(gè)包中其余的類訪問這些成員 packageGreek publicclassAlpha protectedintiamprotected protectedvoidprotectedMethod System out println protectedMethod packageGreek classGamma voidaccessMethod Alphaa newAlpha a iamprotected 10 a protectedMethod 高級訪問控制 protected legal legal 27 packageLatin importGreek classDeltaextendsAlpha voidaccessMethod Alphaa Deltad a iamprotected 10 d iamprotected 10 a protectedMethod d protectedMethod 高級訪問控制 protected X X 28 packageGreek classAlpha intiampackage voidpackageMethod System out println packageMethod packageGreek classBeta voidaccessMethod Alphaa newAlpha a iampackage 10 a packageMethod 高級訪問控制 package 29 內(nèi)部類 內(nèi)部類是在一個(gè)類的聲明里聲明的類 ClassA classB 內(nèi)部類可作為類的一個(gè)成員使用 一般只在包容類中調(diào)用 內(nèi)部類可以訪問外包類的所有成員 30 運(yùn)算符與equals 方法 equals 和 比較兩個(gè)引用是否指向相同的對象 equals 方法在String Date File 所有Wrapper類都重寫了該方法 改為比較內(nèi)容 31 Wrapper類 Wrapper將基本類型表示成類 每個(gè)wrapper類對象都封裝了基本類型的一個(gè)值 PrimitiveDataTypeWrapperClassbooleanBooleanbyteBytecharCharactershortShortintIntegerlongLongfloatFloatdoubleDouble 32 Wrapper類 Wrapper類中包含了很多有用的方法和常量 如數(shù)字型Wrapper類中的MIN VALUE和MAX VALUE常量 定義了該類型的最大值與最小值 byteValue shortValue方法進(jìn)行數(shù)值轉(zhuǎn)換 valueOf和toString實(shí)現(xiàn)字符串與數(shù)值之間的轉(zhuǎn)換 例 Wrapper類對象的創(chuàng)建 Integerquantity newInteger 123456 Doubleamount newDouble 345987 246 33 CollectionAPI 集合類 一個(gè)集合類對象表示了一組對象 相當(dāng)于一個(gè)容器 34 Set Set不能包含重復(fù)的元素 兩種Set實(shí)現(xiàn) HashSet和TreeSet Set接口定義 publicinterfaceSet BasicOperationsintsize booleanisEmpty booleancontains Objectelement booleanadd Objectelement Optionalbooleanremove Objectelement OptionalIteratoriterator 35 List List是有序的集合 元素可以重復(fù) List接口定義 publicinterfaceListextendsCollection PositionalAccessObjectget intindex Objectset intindex Objectelement Optionalvoidadd intindex Objectelement OptionalObjectremove intindex OptionalabstractbooleanaddAll intindex Collectionc Optional SearchintindexOf Objecto intlastIndexOf Objecto List的實(shí)現(xiàn) Ar

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論