Lesson06——面向?qū)ο?1)_第1頁
Lesson06——面向?qū)ο?1)_第2頁
Lesson06——面向?qū)ο?1)_第3頁
Lesson06——面向?qū)ο?1)_第4頁
Lesson06——面向?qū)ο?1)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Lesson6面向?qū)ο?1).ppt面向?qū)ο蟮幕靖拍頽什么是面向?qū)ο螅縩面向過程 在一個(gè)結(jié)構(gòu)體中定義窗口的大小,位置等屬性,對窗口操作的函數(shù)與窗口本身的定義沒有任何關(guān)系,如moveWindow,minimize-Window,這些函數(shù)都需要接受一個(gè)代表要被操作的窗口參數(shù),謂與賓關(guān)系。n面向?qū)ο?定義窗口時(shí),屬性、動(dòng)作(操作)定義在一起: 除了要指定在面向過程中規(guī)定的那些屬性,如大小,位置等外,還要指定該窗口可能具有的動(dòng)作,如移動(dòng),最小化等,對應(yīng)的函數(shù)是move, minimize等。這些函數(shù)被調(diào)用時(shí),都是以某個(gè)窗口要隱藏,某個(gè)窗口要移動(dòng)的語法格式來使用的,是一種主謂關(guān)系。面向?qū)ο蟮幕靖拍頽

2、面向?qū)ο蠹夹g(shù)為程序設(shè)計(jì)注入了新的活力,使計(jì)算機(jī)與現(xiàn)實(shí)更接近,更符合人的思維,更富于表現(xiàn)大千世界n每個(gè)人都要從對象的角度思考問題,去關(guān)心對象,體貼對象n萬事萬物皆對象!n“類”是對事物的描述,是抽象的、概念上的定義;“對象”是實(shí)際存在的該類事物的每個(gè)個(gè)體,是實(shí)實(shí)在在的東西,因而也稱實(shí)例(instance),或者對象實(shí)例。 n面向?qū)ο蟮木幊踢^程,就是對象事物的描述(class)與生產(chǎn)(new)、然后是各對象之間交流、通信(對象的動(dòng)作與互操作)的過程。n面向?qū)ο蟮娜筇卣?1.封裝 (Encapsulation) 2.繼承 (Inheritance) 3.多態(tài) (Polymorphism)類的定義c

3、lass Personint age;void shout()System.out.println(“oh,my god! I am “ + age);nage是類的屬性,也叫類成員變量 。nshout是方法, 也叫類的成員函數(shù)。nshout方法可以直接訪問同一個(gè)類中的age變量,當(dāng)然也可以訪問其它的成員方法。如果一個(gè)方法中有與成員變量同名的局部變量,該方法中對這個(gè)變量名的訪問是局部變量,而不再是成員變量。 對象的產(chǎn)生Person p1 = new Person();執(zhí)行完后的內(nèi)存狀態(tài)對象的產(chǎn)生n當(dāng)一個(gè)對象被創(chuàng)建時(shí),會(huì)對其中各種類型的成員變量自動(dòng)進(jìn)行初始化賦值。除了基本數(shù)據(jù)類型之外的變量類型都

4、是引用類型,如上面的Person及前面講過的數(shù)組。 對象的使用n創(chuàng)建新的對象之后,我們就可以使用“ 對象名.對象成員 ”的格式,來訪問對象的成員(包括屬性和方法) class TestPersonpublic static void main(String args) Person p1 = new Person();Person p2 =new Person();p1.age = -30;p1.shout();p2.shout();上面程序運(yùn)行的內(nèi)存布局如下圖 對象的生命周期對象的比較n“=”運(yùn)算符與equals()方法的區(qū)別,切記!n思考:怎樣比較兩個(gè)數(shù)組對象的內(nèi)容是否相等 ?匿名對象n我

5、們也可以不定義對象的句柄,而直接調(diào)用這個(gè)對象的方法。這樣的對象叫做匿名對象, 如:new Person().shout();n如果對一個(gè)對象只需要進(jìn)行一次方法調(diào)用,那么就可以使用匿名對象。n我們經(jīng)常將匿名對象作為實(shí)參傳遞給一個(gè)函數(shù)調(diào)用。實(shí)現(xiàn)類的封裝性nage = -1; 如果外面的程序可以隨意修改一個(gè)類的成員變量,會(huì)造成不可預(yù)料的程序錯(cuò)誤,就象一個(gè)人的身高,不能被外部隨意修改,只能通過各種攝取營養(yǎng)的方法去修改這個(gè)屬性。n在定義一個(gè)類的成員(包括變量和方法)時(shí),使用private關(guān)鍵字說明這個(gè)成員的訪問權(quán)限,這個(gè)成員成了類的私有成員,只能被這個(gè)類的其他成員方法調(diào)用,而不能被其他的類中的方法所調(diào)用

6、。n為了實(shí)現(xiàn)良好的封裝性,我們通常將類的成員變量聲明為private,再通過public的方法來對這個(gè)變量進(jìn)行訪問。對一個(gè)變量的操作,一般都有讀取和賦值操作,我們分別定義兩個(gè)方法來實(shí)現(xiàn)這兩種操作,一個(gè)是getXxx()(Xxx表示要訪問的成員變量的名字),用來讀取這個(gè)成員變量操作,另外一個(gè)是setXxx()用來對這個(gè)成員變量賦值。n一個(gè)類通常就是一個(gè)小的模塊,我們應(yīng)該讓模塊僅僅公開必須要讓外界知道的內(nèi)容,而隱藏其它一切內(nèi)容。我們在進(jìn)行程序的詳細(xì)設(shè)計(jì)時(shí),應(yīng)盡量避免一個(gè)模塊直接修改或操作另一個(gè)模塊的數(shù)據(jù),模塊設(shè)計(jì)追求強(qiáng)內(nèi)聚(許多功能盡量在類的內(nèi)部獨(dú)立完成,不讓外面干預(yù)),弱耦合(提供給外部盡量少的方法調(diào)用)。 舉例:游戲類的封裝所帶來的優(yōu)點(diǎn)n隱藏類的實(shí)現(xiàn)細(xì)節(jié);n讓使用者只能通過事先定制好的方法來訪問數(shù)據(jù),可以方便地加入控制邏輯,限制對屬性的不合理操作;n便于修改,增強(qiáng)代碼的可維護(hù)性;private訪問權(quán)限思考n思考:我們在一個(gè)類中定義了一個(gè)private類型的成員變量,接著產(chǎn)生了這個(gè)類的兩個(gè)實(shí)例對象,請問第一個(gè)對象的方法中,能否以“第二個(gè)對象.成員”的格式訪問第二個(gè)對象中的那個(gè)private成員變量? 復(fù)習(xí)與實(shí)踐n寫一個(gè)長方體類,要求:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論