面向?qū)ο蟮母拍詈蚠第1頁
面向?qū)ο蟮母拍詈蚠第2頁
面向?qū)ο蟮母拍詈蚠第3頁
面向?qū)ο蟮母拍詈蚠第4頁
面向?qū)ο蟮母拍詈蚠第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、ACCP V4.0第三章第三章面向?qū)ο蟮母拍詈?Java 實現(xiàn)-1ACCP V4.02回顧q Java 中的數(shù)據(jù)類型分為兩個類別:原始數(shù)據(jù)類型、引用數(shù)據(jù)類型q 變量是存儲數(shù)據(jù)的基本單元q 數(shù)據(jù)轉(zhuǎn)換有兩種類型:自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換q 數(shù)組用于將相同數(shù)據(jù)類型的多項數(shù)據(jù)存儲在連續(xù)的內(nèi)存單元中q Java 提供了一組豐富的運算符q Java 支持以下控制語句編程結(jié)構(gòu):qif - elseqswitchqforqwhileqdo - whileACCP V4.03目標q理解對象q理解類q理解抽象和封裝q理解對象與類之間的關(guān)系q掌握包的創(chuàng)建和導(dǎo)入ACCP V4.04面向?qū)ο缶幊蘋OP旨在在計算機程序

2、中模擬現(xiàn)實世界中的概念在 OOP 中,現(xiàn)實世界的所有事物全都被視為對象能夠在計算機程序中用類似的實體模擬現(xiàn)實世界中的實體設(shè)計和實現(xiàn)軟件系統(tǒng)的方法ACCP V4.05對象對對 象象面向?qū)ο缶幊痰暮诵臑橛嬎銠C應(yīng)用程序提供實用基礎(chǔ)完成特定任務(wù)表示現(xiàn)實世界中的實體“對象是存在的具體實體,具有明確定義的狀態(tài)和行為。對象是存在的具體實體,具有明確定義的狀態(tài)和行為?!盇CCP V4.06對象的示例收銀員對象顧客對象顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品狀態(tài)狀態(tài)姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印帳單行為行為ACCP V4.07消息傳遞“消息指一個對象為執(zhí)行某項特定操

3、作而向另一個消息指一個對象為執(zhí)行某項特定操作而向另一個對象發(fā)送的請求對象發(fā)送的請求”消息傳遞消息傳遞當需要執(zhí)行一項特定操作時,通過向已為其定義此項操作的對象發(fā)送消息來請求對象之間通過傳遞消息實現(xiàn)相互通信ACCP V4.08類q 類以共同特性和操作定義實體q 類是用于組合各個對象所共有操作和屬性的一種機制形狀類形狀類動物類動物類汽車類汽車類類的示例類的示例“類是具有相同屬性和行為的一組對象的集合類是具有相同屬性和行為的一組對象的集合”ACCP V4.09類和對象的示例雇員雇員收銀員系統(tǒng)管理員倉庫管理員促銷員采購經(jīng)理ACCP V4.010屬性q 事物的特性在類中表示為變量q 每個對象的每個屬性都擁

4、有其特有的值q 屬性名稱由類的所有實例共享住址住址姓名姓名屬性屬性年齡年齡“在類中表示對象或?qū)嶓w擁有的特性時稱為屬性在類中表示對象或?qū)嶓w擁有的特性時稱為屬性 ”促銷員對象促銷員對象ACCP V4.011方法方法方法操作的實際實現(xiàn)如何執(zhí)行所請求的操作的規(guī)范方法指定操作對象數(shù)據(jù)的方式在得到操作請求時指定如何做的算法“對象執(zhí)行的操作稱為方法。對象執(zhí)行的操作稱為方法。”ACCP V4.012方法的示例縫衣服的步驟縫衣服的步驟量尺寸量尺寸得到工具得到工具縫衣服縫衣服方法方法縫制衣服裁縫ACCP V4.013類和對象的區(qū)別 類是概念模型, 定義對象的所 有特性和所需 的操作對象是真實的模型類和對象類定義實

5、體對象是實際的實體類是對象的原型類是對象的原型所有屬于同一個類所有屬于同一個類的對象都具有相同的對象都具有相同的特性和操作的特性和操作ACCP V4.014封裝q 信息隱藏,隱藏對象的實現(xiàn)細節(jié),不讓用戶看到q 將東西包裝在一起,然后以新的完整形式呈現(xiàn)出來q例如,兩種或多種化學(xué)藥品組成一個膠囊q將方法和屬性一起包裝到一個單元中,單元以類的形式實現(xiàn)“隱藏屬性、方法或?qū)崿F(xiàn)細節(jié)的過程稱為封裝。隱藏屬性、方法或?qū)崿F(xiàn)細節(jié)的過程稱為封裝。”ACCP V4.015封裝的示例 3-1接口 采購經(jīng)理羅杰斯先生法拉力公司.迪斯尼汽車公司.市場經(jīng)理雪莉女士 要求ACCP V4.016 封裝的示例 3-2有選擇地提供數(shù)

6、據(jù)法拉力公司迪斯尼汽車公司公共電話號碼電子郵箱產(chǎn)品種類私有備件的制造方法備件庫存?zhèn)浼闹圃斐杀竟搽娫捥柎a電子郵箱汽車種類私有汽車的組裝方法汽車庫存汽車的組裝成本ACCP V4.017封裝的示例 3-3 實體法拉力公司實體迪斯尼汽車公司 Auti Ltd.Buto Ltd.屬性電話號碼電子郵箱產(chǎn)品種類現(xiàn)有存貨數(shù)量雇員詳情所需物料詳情屬性電話號碼電子郵箱汽車種類汽車規(guī)格雇員詳情庫存詳情經(jīng)銷商詳情方法接收訂單備件的制造方法計算備件的制造成本計算利潤率方法發(fā)出訂單汽車的組裝方法計算汽車的組裝成本計算工資發(fā)出訂單編制必要報告ACCP V4.018抽象處理事物復(fù)雜性的方法處理事物復(fù)雜性的方法只關(guān)注事物的

7、重要細節(jié),而忽略事物的次要細節(jié)。ACCP V4.019抽象的示例遞交報告遞交報告速遞公司速遞公司在回執(zhí)確認上簽名在回執(zhí)確認上簽名返回回執(zhí)確認返回回執(zhí)確認史密斯大夫史密斯大夫?qū)蟾嫠屯康牡貙蟾嫠屯康牡匕b并密封報告包裝并密封報告ACCP V4.020數(shù)據(jù)抽象q抽取出關(guān)鍵數(shù)據(jù)q抽取出屬性和方法 “根據(jù)具體的應(yīng)用抽取出類的相關(guān)關(guān)屬性和操作?!盇CCP V4.021數(shù)據(jù)抽象的示例屬性NameStudentNOSeatNumber方法getName()getStudentNO()Student 類類getSeatNumber()ACCP V4.022在 Java 中實現(xiàn)類 語法語法class 其中

8、,class 是創(chuàng)建類所使用的關(guān)鍵字, 是類的名稱, 包含屬性和方法的聲明。ACCP V4.023定義類和創(chuàng)建對象q類的命名規(guī)則:q不能為 Java 中的關(guān)鍵字q不能包含空格或點號“. ”q可以下劃線“_”、字母或“$”符號開頭class Book String bookName; String authorName; int nopages; boolean available;ACCP V4.024類中的方法 6-1方法的定義方法的定義方法的名稱參數(shù)列表方法的主體方法返回的對象類型或原始類型ACCP V4.025類中的方法 6-2語法 ( , ,) 其中, 是方法返回值的數(shù)據(jù)類型 是用戶自

9、定義的方法名稱方法的參數(shù)列表是一組變量聲明。ACCP V4.026類中的方法 6-3不能為 Java 中的關(guān)鍵字不能包含空格或點號“.”可以下劃線“_”、字母或“$”符號開頭方法的命名規(guī)則方法的命名規(guī)則:ACCP V4.027類中的方法 6-4class Book String bookName; String authorName; int nopages; boolean available; void isAvailable() if(available = true) System.out.println(有這本書); .方法ACCP V4.028類中的方法 6-5q實例方法可使用圓點

10、符號來訪問q方法被調(diào)用的對象在圓點左邊,而方法的名稱在圓點右邊q例如: Obj.isAvailable();ACCP V4.029類中的方法 6-6class Book String bookName; String authorName; int nopages; boolean available; static void isAvailable() if(available = true)System.out.println(“有這本書); Book objBook = new Book();objBook.isAvailable();.圓點符號ACCP V4.030this 關(guān)鍵字q用

11、于任何實例方法內(nèi),指向當前對象qthis 的值指向?qū)ζ湔{(diào)用當前方法的對象 qthis 關(guān)鍵字可在需要當前類類型的對象引用時使用 ACCP V4.031this 關(guān)鍵字的示例class Pixel int x;int y; void init (int x, int y) this.x = x; this.y = y; public static void main (String args) Pixel p = new Pixel(); p.init (4,3); 此程序初始化 x = 4 和 y = 3對象的引用ACCP V4.032構(gòu)造方法q每當創(chuàng)建給定類的實例時就調(diào)用的方法q與類同名,但

12、沒有返回類型qJava 為對象分配內(nèi)存,初始化實例變量并調(diào)用構(gòu)造方法q兩種構(gòu)造方法q參數(shù)化構(gòu)造方法q隱式構(gòu)造方法ACCP V4.033參數(shù)化構(gòu)造方法的示例class Sdate int month; int day; int year; Sdate(int m,int d,int y) month=m; day=d; year=y; System.out.println(“日期是 + m + / + d + / + y + .); public static void main(String args) Sdate S1,S2; S1=new Sdate(11,27,1969); S2=new

13、 Sdate(3,3,1973); 參數(shù)化構(gòu)造方法ACCP V4.034隱式構(gòu)造方法的示例class Sdate int month=11; int day=27; int year=1969; public static void main(String args ) Sdate S1; S1=new Sdate(); 隱式構(gòu)造方法ACCP V4.035示例的構(gòu)造方法演示:示例 1public static void main(String args) Book objBook = new Book(CoreJava, Albert, 45, true); User objUser = ne

14、w User(); objUser.getBookStatus(objBook); Book(String book, String author, int pages, boolean status) bookName = book; authorName = author; nopages = pages; available = status; void getBookStatus(Book objBook) objBook.isAvailable(); ACCP V4.036包q 包允許將類組合成較小的單元(類似文件夾),使其易于找到和使用相應(yīng)的類文件q 有助于避免命名沖突。在使用許多類時,類和方法的名稱很難決定。有時需要使用與其他類相同的名稱。包基本上隱藏了類并避免了名稱上的沖突q 包允許在更廣的范圍內(nèi)保護類、數(shù)據(jù)和方法,可以在包內(nèi)定義類,而在包外的代碼不能訪問該類 “包將類名空間劃分為更加容易管理的塊, 包既是命名機制也是可見度控制機制 ”ACCP V4.037創(chuàng)建包package mypackage;public class Calculate public double volume(double height, double width, double depth) 聲明包ACCP V4.038導(dǎo)入包import m

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論