Lesson06——面向對象(1)_第1頁
Lesson06——面向對象(1)_第2頁
Lesson06——面向對象(1)_第3頁
Lesson06——面向對象(1)_第4頁
Lesson06——面向對象(1)_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Lesson6面向對象(1).ppt面向對象的基本概念n什么是面向對象?n面向過程 在一個結構體中定義窗口的大小,位置等屬性,對窗口操作的函數與窗口本身的定義沒有任何關系,如moveWindow,minimize-Window,這些函數都需要接受一個代表要被操作的窗口參數,謂與賓關系。n面向對象 定義窗口時,屬性、動作(操作)定義在一起: 除了要指定在面向過程中規定的那些屬性,如大小,位置等外,還要指定該窗口可能具有的動作,如移動,最小化等,對應的函數是move, minimize等。這些函數被調用時,都是以某個窗口要隱藏,某個窗口要移動的語法格式來使用的,是一種主謂關系。面向對象的基本概念n

2、面向對象技術為程序設計注入了新的活力,使計算機與現實更接近,更符合人的思維,更富于表現大千世界n每個人都要從對象的角度思考問題,去關心對象,體貼對象n萬事萬物皆對象!n“類”是對事物的描述,是抽象的、概念上的定義;“對象”是實際存在的該類事物的每個個體,是實實在在的東西,因而也稱實例(instance),或者對象實例。 n面向對象的編程過程,就是對象事物的描述(class)與生產(new)、然后是各對象之間交流、通信(對象的動作與互操作)的過程。n面向對象的三大特征 1.封裝 (Encapsulation) 2.繼承 (Inheritance) 3.多態 (Polymorphism)類的定義c

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

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

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

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

溫馨提示

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

評論

0/150

提交評論