Java語(yǔ)法課件1第4章面向?qū)ο螅ㄒ唬第1頁(yè)
Java語(yǔ)法課件1第4章面向?qū)ο螅ㄒ唬第2頁(yè)
Java語(yǔ)法課件1第4章面向?qū)ο螅ㄒ唬第3頁(yè)
Java語(yǔ)法課件1第4章面向?qū)ο螅ㄒ唬第4頁(yè)
Java語(yǔ)法課件1第4章面向?qū)ο螅ㄒ唬第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第4章面向?qū)ο螅ㄒ唬?.1面向?qū)ο蟾拍?.2類與對(duì)象的概念4.3方法4.4關(guān)鍵字this的使用4.5關(guān)鍵字static的使用4.6內(nèi)部類4.7包4.8類及成員的訪問(wèn)權(quán)限4.1面向?qū)ο蟾拍蠲嫦驅(qū)ο笏枷胧侨祟愖钭匀坏囊环N思考方式,它將所有預(yù)處理的問(wèn)題抽象為對(duì)象,同時(shí)了解這些對(duì)象具有哪些屬性以及行為,以解決這些對(duì)象面臨的一些實(shí)際問(wèn)題,這樣就在程序開(kāi)發(fā)中引入了面向?qū)ο笤O(shè)計(jì)的概念,面向?qū)ο笤O(shè)計(jì)實(shí)際上就是對(duì)現(xiàn)實(shí)世界的對(duì)象進(jìn)行建模操作。面向?qū)ο蟮奶攸c(diǎn)主要可以概括為封裝性、繼承性和多態(tài)性4.2類與對(duì)象的概念類實(shí)質(zhì)上就是封裝對(duì)象屬性和行為的載體,而對(duì)象則是類抽象出來(lái)的一個(gè)實(shí)例。4.2類與對(duì)象的概念4.2.1類的定義類是對(duì)一個(gè)特定類型對(duì)象的描述,它定義了一種新類型,即“類”是對(duì)象的定義,用戶也可以把它看做是對(duì)象的藍(lán)圖。類中可以包含有關(guān)對(duì)象屬性和方法的定義。其中,屬性是存儲(chǔ)數(shù)據(jù)的變量,可以是任何類型,用戶通過(guò)這些數(shù)據(jù)區(qū)分類的不同對(duì)象;方法定義了用戶對(duì)類的各種操作,也就是類的對(duì)象可以做的事情,通常,方法是對(duì)屬性進(jìn)行操作的4.2類與對(duì)象的概念4.2.2對(duì)象的定義和引用類是對(duì)象的抽象,為對(duì)象定義了屬性和行為,但類本身既不帶任何數(shù)據(jù),也不存在于內(nèi)存空間中。而對(duì)象是類的一個(gè)具體存在,既擁有獨(dú)立的內(nèi)存空間,也存在獨(dú)特的屬性和行為,屬性還可以隨著自身的行為而發(fā)生改變。類名對(duì)象名=new類名();4.2類與對(duì)象的概念4.2.3類的設(shè)計(jì)由于封裝性是面向?qū)ο蟮奶卣髦?,因此通常將類設(shè)計(jì)成一個(gè)黑匣子,使用者只能通過(guò)類所提供的公共方法來(lái)實(shí)現(xiàn)對(duì)內(nèi)部成員的操作和訪問(wèn),不能看見(jiàn)方法的實(shí)現(xiàn)細(xì)節(jié),也不能直接訪問(wèn)對(duì)象內(nèi)部成員。類的封裝可以隱藏類的實(shí)現(xiàn)細(xì)節(jié),促使用戶只能通過(guò)方法去訪問(wèn)數(shù)據(jù),這樣就可以增強(qiáng)程序的安全性4.3方法方法(method)是數(shù)行代碼的集合,可以操作類中的屬性,用于解決特定問(wèn)題。在程序中多次使用相同的代碼,重復(fù)地編寫(xiě)及維護(hù)比較麻煩,因此可以將此部分代碼定義成一個(gè)方法,以供程序反復(fù)調(diào)用。4.3方法4.3.1成員方法1.方法的定義:Java中的方法定義在類中,一個(gè)類可以聲明多個(gè)方法。方法包括方法頭和方法體兩部分,其中方法頭確定方法的名字、形式參數(shù)的名字及類型、返回值的類型和訪問(wèn)權(quán)限等,方法體是具體完成的操作。4.3方法4.3.1成員方法2.方法的調(diào)用:方法在調(diào)用時(shí)執(zhí)行方法中的代碼,因此要執(zhí)行方法,必須調(diào)用方法。如果方法有返回值,通常將方法調(diào)用作為一個(gè)值來(lái)處理。如果方法沒(méi)有返回值,方法調(diào)用必須是一條語(yǔ)句。4.3方法4.3.2構(gòu)造方法構(gòu)造方法必須以類名作為方法的名稱,不返回任何值,也就是說(shuō)構(gòu)造方法是以類名為名稱的特殊方法。4.3方法4.3.2構(gòu)造方法在Java中,最少要有一個(gè)構(gòu)造方法。類的構(gòu)造方法可以顯示定義也可以隱式定義,顯示定義的意思是說(shuō)在類中已經(jīng)寫(xiě)好了構(gòu)造方法的代碼;隱式定義是指如果在一個(gè)類中沒(méi)有定義構(gòu)造方法,系統(tǒng)在解釋時(shí)會(huì)分配一個(gè)默認(rèn)的構(gòu)造方法,這個(gè)構(gòu)造工作方法只是一個(gè)空殼,沒(méi)有參數(shù),也沒(méi)有方法體,類的所有屬性系統(tǒng)將根據(jù)其數(shù)據(jù)類型默認(rèn)賦值。所以說(shuō)類的構(gòu)造方法是必須的,但其代碼可以不編寫(xiě)??傊?,如果在類中已經(jīng)實(shí)現(xiàn)了構(gòu)造方法,系統(tǒng)不會(huì)分配構(gòu)造方法,如果沒(méi)有實(shí)現(xiàn),系統(tǒng)會(huì)自動(dòng)分配。4.3方法4.3.2構(gòu)造方法構(gòu)造方法的特點(diǎn)如下:構(gòu)造方法必須與類同名。構(gòu)造方法沒(méi)有返回類型,也不能用void。構(gòu)造方法不能由編程人員調(diào)用,是系統(tǒng)自動(dòng)調(diào)用。一個(gè)類中可以定義多個(gè)構(gòu)造方法,即構(gòu)造方法的重載。但如果沒(méi)有定義構(gòu)造方法,系統(tǒng)會(huì)自動(dòng)分配一個(gè)無(wú)參的默認(rèn)的構(gòu)造方法。4.3方法4.3.3方法的重載1.成員方法的重載每一成員方法都有其簽名,方法的簽名包含方法的名稱及它的形參的數(shù)量、每個(gè)形參的類型組成。具體說(shuō),方法簽名不包含返回類型。在類中如果聲明有多個(gè)同名的方法,但它們的簽名不同,則稱為方法的重載。4.3方法4.3.3方法的重載2.構(gòu)造方法的重載類的定義中如果有兩個(gè)以上參數(shù)個(gè)數(shù)或類型不同的構(gòu)造方法時(shí),稱為構(gòu)造方法的重載。4.4關(guān)鍵字this的使用每個(gè)對(duì)象都有一個(gè)名為this的引用,它指向當(dāng)前對(duì)象本身使用this調(diào)用類中的屬性,也就是類中的成員變量。使用this調(diào)用成員方法使用this調(diào)用其他構(gòu)造方法4.5關(guān)鍵字static的使用Java的類中可以包含兩種成員:實(shí)例成員和靜態(tài)成員。實(shí)例成員:一般在類中定義的成員是每個(gè)由此類產(chǎn)生的對(duì)象擁有的,因此可以稱之為實(shí)例成員或?qū)ο蟪蓡T靜態(tài)成員:如果需要讓類的所有對(duì)象在類的范圍內(nèi)共享某個(gè)成員,而這個(gè)成員不屬于任何由此類產(chǎn)生的對(duì)象,它是屬于整個(gè)類的,這種成員稱為靜態(tài)成員或類成員。4.5關(guān)鍵字static的使用4.5.1靜態(tài)屬性與實(shí)例屬性靜態(tài)屬性:使用static修飾的屬性,稱為靜態(tài)屬性或類屬性,它被類的所有對(duì)象共享,屬于整個(gè)類所有,因此可以通過(guò)類名直接來(lái)訪問(wèn)。實(shí)例屬性:而未使用static修飾的屬性稱為實(shí)例屬性,它屬于具體對(duì)象獨(dú)有,每個(gè)對(duì)象分別包含一組該類的所有實(shí)例屬性。4.5關(guān)鍵字static的使用4.5.2靜態(tài)方法與實(shí)例方法靜態(tài)方法:使用static修飾的成員方法,稱為靜態(tài)方法,無(wú)須創(chuàng)建類的實(shí)例就可以調(diào)用靜態(tài)方法,靜態(tài)方法可以通過(guò)類名調(diào)用。實(shí)例方法:沒(méi)有用static修飾的方法,稱為實(shí)例方法。4.5關(guān)鍵字static的使用4.5.3靜態(tài)成員和實(shí)例成員的區(qū)別1.靜態(tài)成員的特征2.實(shí)例成員的特征3.訪問(wèn)權(quán)限4.5關(guān)鍵字static的使用1.靜態(tài)成員的特征(1)一個(gè)靜態(tài)屬性只標(biāo)識(shí)一個(gè)存儲(chǔ)位置。無(wú)論創(chuàng)建了多少個(gè)類的對(duì)象,永遠(yuǎn)都只有靜態(tài)屬性的一個(gè)副本。(2)靜態(tài)方法不在某個(gè)特定對(duì)象上操作,在這樣的方法中引用this是錯(cuò)誤的。4.5關(guān)鍵字static的使用2.實(shí)例成員的特征(1)類的每個(gè)對(duì)象分別包含一組該類的所有實(shí)例屬性。類的每個(gè)對(duì)象都為每個(gè)實(shí)例屬性建立一個(gè)副本。也就是說(shuō)類的每個(gè)對(duì)象的實(shí)例屬性的存儲(chǔ)位置都是不同的。(2)實(shí)例方法在類的給定對(duì)象上操作,此對(duì)象可以作為this訪問(wèn)。4.5關(guān)鍵字static的使用3.訪問(wèn)權(quán)限(1)靜態(tài)方法可以訪問(wèn)靜態(tài)成員,但是不能訪問(wèn)實(shí)例成員。(2)實(shí)例成員可以訪問(wèn)靜態(tài)成員,也可以訪問(wèn)實(shí)例成員。4.5關(guān)鍵字static的使用4.5.4代碼塊1.動(dòng)態(tài)代碼塊:動(dòng)態(tài)代碼塊就是直接定義在類中的代碼塊,它沒(méi)有任何前綴、后綴及關(guān)鍵字修飾。2.靜態(tài)代碼塊:靜態(tài)代碼塊就是使用static關(guān)鍵字修飾的代碼塊,它是最早執(zhí)行的代碼塊。4.6內(nèi)部類在Java中,類中除了可以定義成員變量與成員方法外,還可以定義類,該類稱作內(nèi)部類,內(nèi)部類所在的類稱作外部類。根據(jù)內(nèi)部類的位置、修飾符和定義的方式可分為成員內(nèi)部類、靜態(tài)內(nèi)部類、方法內(nèi)部類以及匿名內(nèi)部類4種。4.6內(nèi)部類4.6.1成員內(nèi)部類成員內(nèi)部類是指類作為外部類的一個(gè)成員,能直接訪問(wèn)外部類的所有成員,但在外部類中訪問(wèn)內(nèi)部類,則需要在外部類中創(chuàng)建內(nèi)部類的對(duì)象,使用內(nèi)部類的對(duì)象來(lái)訪問(wèn)內(nèi)部類中的成員。同時(shí),若要在外部類外要訪問(wèn)內(nèi)部類,則需要通過(guò)外部類對(duì)象去創(chuàng)建內(nèi)部類對(duì)象,在外部類外創(chuàng)建一個(gè)內(nèi)部類對(duì)象的語(yǔ)法格式如下:外部類名.內(nèi)部類名變量名=new外部類名().內(nèi)部類名()4.6內(nèi)部類4.6.2靜態(tài)內(nèi)部類如果不需要外部類對(duì)象與內(nèi)部類對(duì)象之間有聯(lián)系,那么可以將內(nèi)部類聲明為static,用static關(guān)鍵字修飾的內(nèi)部類稱為靜態(tài)內(nèi)部類。靜態(tài)內(nèi)部類可以有實(shí)例成員和靜態(tài)成員,它可以直接訪問(wèn)外部類的靜態(tài)成員,但如果想訪問(wèn)外部類的實(shí)例成員,就必須通過(guò)外部類的對(duì)象去訪問(wèn)。另外,如果在外部類外訪問(wèn)靜態(tài)內(nèi)部類成員,則不需要?jiǎng)?chuàng)建外部類對(duì)象,只需創(chuàng)建內(nèi)部類對(duì)象即可。創(chuàng)建內(nèi)部類對(duì)象的語(yǔ)法格式如下:外部類名.內(nèi)部類名變量名=new外部類名.內(nèi)部類名()4.6內(nèi)部類4.6.3方法內(nèi)部類方法內(nèi)部類是指在成員方法中定義的類,它與局部變量類似,作用域?yàn)槎x它的代碼塊,因此它只能在定義該內(nèi)部類的方法內(nèi)實(shí)例化,不可以在此方法外對(duì)其實(shí)例化。4.6內(nèi)部類4.6.4匿名內(nèi)部類匿名內(nèi)部類就是沒(méi)有名稱的內(nèi)部類。創(chuàng)建匿名內(nèi)部類時(shí)會(huì)立即創(chuàng)建一個(gè)該類的對(duì)象,該類定義立即消失,匿名內(nèi)部類不能重復(fù)使用。4.7包4.7.1包的定義和使用包(package)是Java提供的一種區(qū)別類的名字空間的機(jī)制,是類的組織方式,是一組相關(guān)類和接口的集合,它提供了訪問(wèn)權(quán)限和命名的管理機(jī)制。使用package語(yǔ)句聲明包,其語(yǔ)法格式如下:package包名4.7包4.7.2import語(yǔ)句當(dāng)類進(jìn)行打包操作后,同一個(gè)包內(nèi)的類默認(rèn)引入,當(dāng)需要使用其他包中的類時(shí),需要在程序的開(kāi)頭寫(xiě)上import語(yǔ)句,指出要導(dǎo)入哪個(gè)包的哪些類,然后才可以使用這些類。引入包的語(yǔ)法如下:import包名.*;4.8類及成員的訪問(wèn)權(quán)限Java為類中的成員設(shè)置了4種訪問(wèn)權(quán)限,為類本身設(shè)置了2種訪問(wèn)權(quán)限。4.8類及成員的訪問(wèn)權(quán)限4.8.1類的訪問(wèn)權(quán)限Java提供了2中類的訪問(wèn)權(quán)限,分別是public和默認(rèn)。4.8.2類成員的訪問(wèn)權(quán)限Java提供的4種成員的訪問(wèn)權(quán)限分別是:public(公有)、protected(保護(hù))、默認(rèn)和private(私有)4.8類及成員的訪問(wèn)權(quán)限private(類訪問(wèn)權(quán)限):被private修飾的成員,只能被當(dāng)前類中其他成員訪問(wèn),不能在類外被訪問(wèn)。default(包訪問(wèn)權(quán)限):如果一個(gè)類或類的成員前沒(méi)有任何訪問(wèn)權(quán)限修飾,則表示默認(rèn)訪問(wèn)權(quán)限,即類或類的成員可以被同

溫馨提示

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

評(píng)論

0/150

提交評(píng)論