java面向對象編程培訓課件1_第1頁
java面向對象編程培訓課件1_第2頁
java面向對象編程培訓課件1_第3頁
java面向對象編程培訓課件1_第4頁
java面向對象編程培訓課件1_第5頁
已閱讀5頁,還剩73頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

第二講面向對象的概念和

Java實現1第二講面向對象的概念和Java實現1回顧Java中的數據類型分為兩個類別:原始數據類型、引用數據類型變量是存儲數據的基本單元數據轉換有兩種類型:自動類型轉換和強制類型轉換數組用于將相同數據類型的多項數據存儲在連續的內存單元中Java提供了一組豐富的運算符Java支持以下控制語句編程結構:if-elseswitchforwhiledo-while2回顧Java中的數據類型分為兩個類別:原始數據類型、引用數目標理解對象理解類理解抽象和封裝理解對象與類之間的關系掌握包的創建和導入3目標理解對象3面向對象編程OOP旨在在計算機程序中模擬現實世界中的概念在OOP中,現實世界的所有事物全都被視為對象能夠在計算機程序中用類似的實體模擬現實世界中的實體設計和實現軟件系統的方法4面向對象編程OOP旨在在計算機程序中在OOP中,現實世界對象對

象面向對象編程的核心為計算機應用程序提供實用基礎完成特定任務表示現實世界中的實體“對象是存在的具體實體,具有明確定義的狀態和行為。”5對象對象面向對象編程的核心為計算機應用程序提供實用基礎完成對象的示例收銀員對象顧客對象顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品狀態姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印帳單行為6對象的示例收銀員對象顧客對象顧客狀態姓名:布蘭尼行為6消息傳遞“消息指一個對象為執行某項特定操作而向另一個對象發送的請求”消息傳遞當需要執行一項特定操作時,通過向已為其定義此項操作的對象發送消息來請求對象之間通過傳遞消息實現相互通信7消息傳遞“消息指一個對象為執行某項特定操作而向另一個消息傳遞類類以共同特性和操作定義實體類是用于組合各個對象所共有操作和屬性的一種機制形狀類動物類汽車類類的示例“類是具有相同屬性和行為的一組對象的集合”8類類以共同特性和操作定義實體形狀類動物類汽車類類的示例“類是類和對象的示例雇員收銀員系統管理員倉庫管理員促銷員采購經理9類和對象的示例雇員收銀員系統管理員倉庫管理員促銷員采購經理9屬性事物的特性在類中表示為變量每個對象的每個屬性都擁有其特有的值屬性名稱由類的所有實例共享住址姓名屬性年齡“在類中表示對象或實體擁有的特性時稱為屬性”促銷員對象10屬性事物的特性在類中表示為變量住址姓名屬性年齡“在類中表示對方法方法操作的實際實現如何執行所請求的操作的規范方法指定操作對象數據的方式在得到操作請求時指定如何做的算法“對象執行的操作稱為方法。”11方法方法操作的實際實現如何執行所請求的操作的規范方法指定操作方法的示例縫衣服的步驟量尺寸得到工具縫衣服方法縫制衣服裁縫12方法的示例縫衣服的步驟量尺寸得到工具縫衣服方法縫制衣服裁縫1類和對象的區別類是概念模型,定義對象的所有特性和所需的操作對象是真實的模型類和對象類定義實體對象是實際的實體類是對象的原型所有屬于同一個類的對象都具有相同的特性和操作13類和對象的區別類是概念模型,對象是真實的模型類和對象類定封裝信息隱藏,隱藏對象的實現細節,不讓用戶看到將東西包裝在一起,然后以新的完整形式呈現出來例如,兩種或多種化學藥品組成一個膠囊將方法和屬性一起包裝到一個單元中,單元以類的形式實現“隱藏屬性、方法或實現細節的過程稱為封裝。”14封裝信息隱藏,隱藏對象的實現細節,不讓用戶看到“隱藏屬性、方封裝的示例3-1接口

采購經理羅杰斯先生法拉力公司.迪斯尼汽車公司.市場經理雪莉女士

要求15封裝的示例3-1接口采購經理羅杰斯先生法拉力公司.迪斯

封裝的示例3-2有選擇地提供數據法拉力公司迪斯尼汽車公司公共電話號碼電子郵箱產品種類私有備件的制造方法備件庫存備件的制造成本公共電話號碼電子郵箱汽車種類私有汽車的組裝方法汽車庫存汽車的組裝成本16封裝的示例3-2有選擇地提供數據法拉力公司迪斯尼汽車公封裝的示例3-3

實體法拉力公司實體迪斯尼汽車公司

AutiLtd.ButoLtd.屬性電話號碼電子郵箱產品種類現有存貨數量雇員詳情所需物料詳情屬性電話號碼電子郵箱汽車種類汽車規格雇員詳情庫存詳情經銷商詳情方法接收訂單備件的制造方法計算備件的制造成本計算利潤率方法發出訂單汽車的組裝方法計算汽車的組裝成本計算工資發出訂單編制必要報告17封裝的示例3-3實體法拉力公司實體迪斯尼汽車公司Au抽象處理事物復雜性的方法只關注事物的重要細節,而忽略事物的次要細節。18抽象處理事物復雜性的方法只關注事物的重要18抽象的示例遞交報告速遞公司在回執確認上簽名返回回執確認史密斯大夫將報告送往目的地包裝并密封報告19抽象的示例遞交報告速遞公司在回執確認上簽名返回回執確認史密斯數據抽象抽取出關鍵數據抽取出屬性和方法

“根據具體的應用抽取出類的相關關屬性和操作。”20數據抽象抽取出關鍵數據“根據具體的應用抽取出類的相關關屬性和數據抽象的示例屬性NameStudentNOSeatNumber方法getName()getStudentNO()Student類getSeatNumber()21數據抽象的示例屬性NameStudentNOSeatNumb在Java中實現類

語法 class<classname>{ <bodyofclass> }其中,class是創建類所使用的關鍵字,<classname>是類的名稱,<bodyofclass>包含屬性和方法的聲明。22在Java中實現類語法22定義類和創建對象類的命名規則:不能為Java中的關鍵字不能包含空格或點號“.”可以下劃線“_”、字母或“$”符號開頭classBook{StringbookName;StringauthorName;intnopages;booleanavailable;}23定義類和創建對象類的命名規則:classBook{23類中的方法6-1方法的定義方法的名稱參數列表方法的主體方法返回的對象類型或原始類型24類中的方法6-1方法的定義方法的名稱參數列表方法的主體方法類中的方法6-2語法<returntype><methodname>(<type1><arg1>,<type2><arg3>,…){ <setofstatements>}其中,<returntype>是方法返回值的數據類型<methodname>是用戶自定義的方法名稱方法的參數列表是一組變量聲明。25類中的方法6-2語法25類中的方法6-3不能為Java中的關鍵字不能包含空格或點號“.”可以下劃線“_”、字母或“$”符號開頭方法的命名規則:26類中的方法6-3不能為Java中的關鍵字不能包含空格或類中的方法6-4classBook{ StringbookName; StringauthorName;intnopages;booleanavailable; voidisAvailable(){ if(available==true) { System.out.println("有這本書");}}…..}方法27類中的方法6-4classBook{方法27類中的方法6-5實例方法可使用圓點符號來訪問方法被調用的對象在圓點左邊,而方法的名稱在圓點右邊例如:Obj.isAvailable();28類中的方法6-5實例方法可使用圓點符號來訪問28類中的方法6-6classBook{ StringbookName; StringauthorName;intnopages;booleanavailable; staticvoidisAvailable(){ if(available==true) System.out.println(“有這本書"); }BookobjBook=newBook();objBook.isAvailable();…..圓點符號29類中的方法6-6classBook{圓點符號29this關鍵字用于任何實例方法內,指向當前對象this的值指向對其調用當前方法的對象this關鍵字可在需要當前類類型的對象引用時使用30this關鍵字用于任何實例方法內,指向當前對象30this關鍵字的示例classPixel{ intx; inty;voidinit(intx,inty){this.x=x;this.y=y;}publicstaticvoidmain(Stringargs[]){Pixelp=newPixel();p.init(4,3);}}此程序初始化x=4和y=3對象的引用31this關鍵字的示例classPixel{此程序初構造方法每當創建給定類的實例時就調用的方法與類同名,但沒有返回類型Java為對象分配內存,初始化實例變量并調用構造方法兩種構造方法參數化構造方法隱式構造方法32構造方法每當創建給定類的實例時就調用的方法32參數化構造方法的示例classSdate

{

intmonth;

intday;

intyear;

Sdate(intm,intd,inty){ month=m; day=d; year=y; System.out.println(“日期是"+m+"/"+d+"/"+y+"."); }publicstaticvoidmain(Stringargs[]){SdateS1,S2;S1=newSdate(11,27,1969);S2=newSdate(3,3,1973);}}參數化構造方法33參數化構造方法的示例classSdate{參數化構造方法隱式構造方法的示例classSdate

{

intmonth=11;

intday=27;

intyear=1969;

publicstaticvoidmain(Stringargs[

]){

SdateS1;

S1=newSdate();

}

}隱式構造方法34隱式構造方法的示例classSdate{隱式構造方法34示例的構造方法演示:示例1publicstaticvoidmain(String[]args){BookobjBook=newBook("CoreJava", "Albert",45,true);UserobjUser=newUser();objUser.getBookStatus(objBook);}Book(Stringbook,Stringauthor,intpages,booleanstatus){bookName=book;authorName=author;nopages=pages;available=status;}voidgetBookStatus(BookobjBook){objBook.isAvailable();}35示例的構造方法演示:示例1publicstaticvo包包允許將類組合成較小的單元(類似文件夾),使其易于找到和使用相應的類文件有助于避免命名沖突。在使用許多類時,類和方法的名稱很難決定。有時需要使用與其他類相同的名稱。包基本上隱藏了類并避免了名稱上的沖突包允許在更廣的范圍內保護類、數據和方法,可以在包內定義類,而在包外的代碼不能訪問該類“包將類名空間劃分為更加容易管理的塊,包既是命名機制也是可見度控制機制”36包包允許將類組合成較小的單元(類似文件夾),使其易于找到和使創建包packagemypackage;publicclassCalculate{publicdoublevolume(doubleheight, doublewidth, doubledepth){……}……}

聲明包37創建包packagemypackage;聲明包37導入包importmypackage.Calculate;publicclassPackageDemo{

publicstaticvoidmain(Stringargs[]){ Calculatecalc=newCalculate(); ……}}導入包38導入包importmypackage.Calculate;總結對象由狀態和行為組成

類是具有相同屬性和行為的一組對象的集合封裝是隱藏對象實現細節的過程,以便不讓用戶看到類的變量和方法可被該類的實例訪問圓點符號用于訪問對象的成員構造函數在創建對象時初始化對象39總結對象由狀態和行為組成39第二講面向對象的概念和

Java實現40第二講面向對象的概念和Java實現1回顧Java中的數據類型分為兩個類別:原始數據類型、引用數據類型變量是存儲數據的基本單元數據轉換有兩種類型:自動類型轉換和強制類型轉換數組用于將相同數據類型的多項數據存儲在連續的內存單元中Java提供了一組豐富的運算符Java支持以下控制語句編程結構:if-elseswitchforwhiledo-while41回顧Java中的數據類型分為兩個類別:原始數據類型、引用數目標理解對象理解類理解抽象和封裝理解對象與類之間的關系掌握包的創建和導入42目標理解對象3面向對象編程OOP旨在在計算機程序中模擬現實世界中的概念在OOP中,現實世界的所有事物全都被視為對象能夠在計算機程序中用類似的實體模擬現實世界中的實體設計和實現軟件系統的方法43面向對象編程OOP旨在在計算機程序中在OOP中,現實世界對象對

象面向對象編程的核心為計算機應用程序提供實用基礎完成特定任務表示現實世界中的實體“對象是存在的具體實體,具有明確定義的狀態和行為。”44對象對象面向對象編程的核心為計算機應用程序提供實用基礎完成對象的示例收銀員對象顧客對象顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品狀態姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印帳單行為45對象的示例收銀員對象顧客對象顧客狀態姓名:布蘭尼行為6消息傳遞“消息指一個對象為執行某項特定操作而向另一個對象發送的請求”消息傳遞當需要執行一項特定操作時,通過向已為其定義此項操作的對象發送消息來請求對象之間通過傳遞消息實現相互通信46消息傳遞“消息指一個對象為執行某項特定操作而向另一個消息傳遞類類以共同特性和操作定義實體類是用于組合各個對象所共有操作和屬性的一種機制形狀類動物類汽車類類的示例“類是具有相同屬性和行為的一組對象的集合”47類類以共同特性和操作定義實體形狀類動物類汽車類類的示例“類是類和對象的示例雇員收銀員系統管理員倉庫管理員促銷員采購經理48類和對象的示例雇員收銀員系統管理員倉庫管理員促銷員采購經理9屬性事物的特性在類中表示為變量每個對象的每個屬性都擁有其特有的值屬性名稱由類的所有實例共享住址姓名屬性年齡“在類中表示對象或實體擁有的特性時稱為屬性”促銷員對象49屬性事物的特性在類中表示為變量住址姓名屬性年齡“在類中表示對方法方法操作的實際實現如何執行所請求的操作的規范方法指定操作對象數據的方式在得到操作請求時指定如何做的算法“對象執行的操作稱為方法。”50方法方法操作的實際實現如何執行所請求的操作的規范方法指定操作方法的示例縫衣服的步驟量尺寸得到工具縫衣服方法縫制衣服裁縫51方法的示例縫衣服的步驟量尺寸得到工具縫衣服方法縫制衣服裁縫1類和對象的區別類是概念模型,定義對象的所有特性和所需的操作對象是真實的模型類和對象類定義實體對象是實際的實體類是對象的原型所有屬于同一個類的對象都具有相同的特性和操作52類和對象的區別類是概念模型,對象是真實的模型類和對象類定封裝信息隱藏,隱藏對象的實現細節,不讓用戶看到將東西包裝在一起,然后以新的完整形式呈現出來例如,兩種或多種化學藥品組成一個膠囊將方法和屬性一起包裝到一個單元中,單元以類的形式實現“隱藏屬性、方法或實現細節的過程稱為封裝。”53封裝信息隱藏,隱藏對象的實現細節,不讓用戶看到“隱藏屬性、方封裝的示例3-1接口

采購經理羅杰斯先生法拉力公司.迪斯尼汽車公司.市場經理雪莉女士

要求54封裝的示例3-1接口采購經理羅杰斯先生法拉力公司.迪斯

封裝的示例3-2有選擇地提供數據法拉力公司迪斯尼汽車公司公共電話號碼電子郵箱產品種類私有備件的制造方法備件庫存備件的制造成本公共電話號碼電子郵箱汽車種類私有汽車的組裝方法汽車庫存汽車的組裝成本55封裝的示例3-2有選擇地提供數據法拉力公司迪斯尼汽車公封裝的示例3-3

實體法拉力公司實體迪斯尼汽車公司

AutiLtd.ButoLtd.屬性電話號碼電子郵箱產品種類現有存貨數量雇員詳情所需物料詳情屬性電話號碼電子郵箱汽車種類汽車規格雇員詳情庫存詳情經銷商詳情方法接收訂單備件的制造方法計算備件的制造成本計算利潤率方法發出訂單汽車的組裝方法計算汽車的組裝成本計算工資發出訂單編制必要報告56封裝的示例3-3實體法拉力公司實體迪斯尼汽車公司Au抽象處理事物復雜性的方法只關注事物的重要細節,而忽略事物的次要細節。57抽象處理事物復雜性的方法只關注事物的重要18抽象的示例遞交報告速遞公司在回執確認上簽名返回回執確認史密斯大夫將報告送往目的地包裝并密封報告58抽象的示例遞交報告速遞公司在回執確認上簽名返回回執確認史密斯數據抽象抽取出關鍵數據抽取出屬性和方法

“根據具體的應用抽取出類的相關關屬性和操作。”59數據抽象抽取出關鍵數據“根據具體的應用抽取出類的相關關屬性和數據抽象的示例屬性NameStudentNOSeatNumber方法getName()getStudentNO()Student類getSeatNumber()60數據抽象的示例屬性NameStudentNOSeatNumb在Java中實現類

語法 class<classname>{ <bodyofclass> }其中,class是創建類所使用的關鍵字,<classname>是類的名稱,<bodyofclass>包含屬性和方法的聲明。61在Java中實現類語法22定義類和創建對象類的命名規則:不能為Java中的關鍵字不能包含空格或點號“.”可以下劃線“_”、字母或“$”符號開頭classBook{StringbookName;StringauthorName;intnopages;booleanavailable;}62定義類和創建對象類的命名規則:classBook{23類中的方法6-1方法的定義方法的名稱參數列表方法的主體方法返回的對象類型或原始類型63類中的方法6-1方法的定義方法的名稱參數列表方法的主體方法類中的方法6-2語法<returntype><methodname>(<type1><arg1>,<type2><arg3>,…){ <setofstatements>}其中,<returntype>是方法返回值的數據類型<methodname>是用戶自定義的方法名稱方法的參數列表是一組變量聲明。64類中的方法6-2語法25類中的方法6-3不能為Java中的關鍵字不能包含空格或點號“.”可以下劃線“_”、字母或“$”符號開頭方法的命名規則:65類中的方法6-3不能為Java中的關鍵字不能包含空格或類中的方法6-4classBook{ StringbookName; StringauthorName;intnopages;booleanavailable; voidisAvailable(){ if(available==true) { System.out.println("有這本書");}}…..}方法66類中的方法6-4classBook{方法27類中的方法6-5實例方法可使用圓點符號來訪問方法被調用的對象在圓點左邊,而方法的名稱在圓點右邊例如:Obj.isAvailable();67類中的方法6-5實例方法可使用圓點符號來訪問28類中的方法6-6classBook{ StringbookName; StringauthorName;intnopages;booleanavailable; staticvoidisAvailable(){ if(available==true) System.out.println(“有這本書"); }BookobjBook=newBook();objBook.isAvailable();…..圓點符號68類中的方法6-6classBook{圓點符號29this關鍵字用于任何實例方法內,指向當前對象this的值指向對其調用當前方法的對象this關鍵字可在需要當前類類型的對象引用時使用69this關鍵字用于任何實例方法內,指向當前對象30this關鍵字的示例classPixel{ intx; inty;voidinit(intx,inty){this.x=x;this.y=y;}publicstaticvoidmain(Stringargs[]){Pixelp=newPixel();p.init(4,3);}}此程序初始化x=4和y=3對象的引用70this關鍵字的示例classPixel{此程序初構造方法每當創建給定類的實例時就調用的方法與類同名,但沒有返回類型Java為對象分配內存,初始化實例變量并調用構造方法兩種構造方法參數化構造方法隱式構造方法71構造方法每當創建給定類的實例時就調用的方法32參數化構造方法的示例classSdate

{

intmonth;

intday;

intyear;

Sdate(intm,intd,inty){ month=m; day=d; year=y; System.out.println(“日期是"+m+"/"+d+"/"+y+"."); }publicstaticvoidmain(Stringargs[]){SdateS1,S2;S1=newSdate(11,27,1969);S2=newSdate(3,3,1973);}}參數化構造方法72參數化構造方法的示例classSdate{參數化構造方法隱式構造方法的示例classSdate

{

intmonth=11;

intday=27;

intyear=1969;

publicstaticvoidmain(Stringargs[

]){

SdateS1;

S1=newSdate();

}

}隱式構造方法73隱式構造方法的示例classSdate{隱式構造方法34示例的

溫馨提示

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

評論

0/150

提交評論