![第4章-封裝與類_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/19/bc123eb5-ae9e-4ac2-84c3-3388d8444b92/bc123eb5-ae9e-4ac2-84c3-3388d8444b921.gif)
![第4章-封裝與類_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/19/bc123eb5-ae9e-4ac2-84c3-3388d8444b92/bc123eb5-ae9e-4ac2-84c3-3388d8444b922.gif)
![第4章-封裝與類_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/19/bc123eb5-ae9e-4ac2-84c3-3388d8444b92/bc123eb5-ae9e-4ac2-84c3-3388d8444b923.gif)
![第4章-封裝與類_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/19/bc123eb5-ae9e-4ac2-84c3-3388d8444b92/bc123eb5-ae9e-4ac2-84c3-3388d8444b924.gif)
![第4章-封裝與類_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-7/19/bc123eb5-ae9e-4ac2-84c3-3388d8444b92/bc123eb5-ae9e-4ac2-84c3-3388d8444b925.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第4章使用封裝和類、數(shù)據(jù)抽象和數(shù)據(jù)隱藏技術(shù)創(chuàng)建和使用類訪問屬性和方法的對象的重載配置方法,以及使用this引用創(chuàng)建和使用static方法和屬性使用類的組合方法包,本章中的知識點、面向過程的編程將問題視為需要完成的一系列功能模塊。函數(shù)(表示高級語言實現(xiàn)功能模塊中的實體)用于執(zhí)行這些任務(wù)。故障診斷的重點是編寫函數(shù)。函數(shù)面向過程,重點關(guān)注如何根據(jù)指定的條件完成指定的任務(wù)。在多函數(shù)程序中,許多重要數(shù)據(jù)放置在全局數(shù)據(jù)區(qū)域中,因此所有函數(shù)都可以訪問這些數(shù)據(jù)(每個函數(shù)也可以有自己的本地數(shù)據(jù)),將這些數(shù)據(jù)與數(shù)據(jù)操作分開的結(jié)構(gòu)可以輕松地更改全局數(shù)據(jù)(無需協(xié)商),從而不能保證程序的準確性。(David aser、
2、Northern Exposure(美國電視劇)、Northern Exposure(美國電視劇)、流程導(dǎo)向、面向?qū)ο蟮木幊虒?shù)據(jù)和數(shù)據(jù)的操作行為封裝在一個相互依賴且不可分割的整體類中)。類中的大多數(shù)數(shù)據(jù)只能用于此類的行為,類提供與外部世界通信的公共外部接口。類是使用類創(chuàng)建對象的抽象數(shù)據(jù)類型。程序的執(zhí)行,表示為一系列對象之間的交互。對象通過公共接口通信以完成系統(tǒng)功能。面向?qū)ο蟪绦蚰K之間的關(guān)系簡單,程序獨立性高,數(shù)據(jù)安全性好。面向?qū)ο蟮奶卣靼ǚ庋b、繼承和多態(tài)。面向?qū)ο?,這樣做有什么好處?將程序分成對象可以實現(xiàn)功能的統(tǒng)一,不同的對象負責不同的功能。封裝:將對象的屬性和操作組合為單獨的整體,并盡
3、可能隱藏對象的內(nèi)部詳細信息。這整個我們稱為“類”?!胺庋b”的兩個含義是將對象的所有屬性和所有服務(wù)結(jié)合起來,形成不可分割的獨立單元,從而實現(xiàn)“信息隱藏”,盡可能隱藏對象的內(nèi)部細節(jié),在外部形成邊界,只有有限的外部接口才能與外部聯(lián)系。4.1封裝的意義,類用作描述相同類型對象的抽象數(shù)據(jù)類型。面向?qū)ο蟮木幊淌嵌x這些類。4.2類定義,定義1類的語法格式類的修飾符類類名/類體,使用4.2.1類定義類,使用4.2.1類定義類,public3360公共。任何人都可以直接訪問Public公式中的成員變量或方法。個人:個人。Private修飾的成員變量或方法只能從此類中直接訪問。具體來說,如果使用public修飾
4、類,則該類可用于其他類,但文件中只能有一個public修飾類,并且文件名必須與公共類名稱匹配??焖倭私獗磉_式,訪問鄭智薰靜態(tài)屬性:創(chuàng)建對象。如何創(chuàng)建對象:new關(guān)鍵字。對于類的非靜態(tài)屬性,必須創(chuàng)建實例對象以獲取實例的屬性。例如:Hotel Hotel=new Hotel();以這種方式創(chuàng)建對象,并創(chuàng)建引用變量hotel和對象設(shè)置的指針關(guān)系。類的屬性、示例酒店問題中的對象和參考的訪問方式、對象和參考的關(guān)系以及對象可以由多個參考變量指向。Hotel Hotel=new Hotel();Hotel hotel2=hotel/對。如果對象未指向參考變量,則對象會變成垃圾,Java的回收機制會定期回收垃
5、圾對象。引用的注意事項,是酒店問題的對象和引用。對象和參照的關(guān)系,變量hotel2參照,什么是配置方法?配置方法是Java在使用new關(guān)鍵字創(chuàng)建對象時調(diào)用的方法,用于為對象分配內(nèi)存空間和初始化類屬性。重點介紹了構(gòu)造方法的創(chuàng)建方法。(1)如果不在類中使用構(gòu)造方法,則可以對系統(tǒng)使用非參數(shù)構(gòu)造方法。(2)構(gòu)造函數(shù)的基本格式:public類名稱()、構(gòu)造函數(shù)方法和(3)Java支持在一個類中創(chuàng)建多個構(gòu)造函數(shù)方法。構(gòu)造函數(shù)方法的參數(shù)類型和數(shù)量不同。(4)如果創(chuàng)建自己的配置方法,系統(tǒng)默認配置方法將不起作用。這是創(chuàng)建對象時使用的組織方法。您可以使用其他配置方法創(chuàng)建對象。格式:類名指變量名=new類名(參數(shù)列
6、表)。例如:Hotel Hotel=new Hotel();/使用無參數(shù)配置方法Hotel Hotel=new Hotel( HILTON );/需要創(chuàng)建參數(shù)配置方法、配置方法、配置方法注意事項、類中除屬性成員外還需要對數(shù)據(jù)執(zhí)行操作。這種操作稱為“方法”。方法的定義格式:修飾符方法返回值的類型方法名稱(參數(shù)列表)、類的方法:public void serch()system . out . print ln(我想查看房間的狀態(tài)信息!);1,public:修改器。public touch up方法表示此方法可以從外部訪問。private touch up方法表示此方法只能在類中使用。(程序包)2
7、,void:表示方法返回值的類型。3、檢索:方法名。4、這種方法是沒有參數(shù)的方法。類的方法:this:表示指向調(diào)用方法的當前對象的引用。4.3.2 this參考,1,定義汽車類Car的成員為顏色、輪胎數(shù)量和操作方法。成員使用品牌:String brand顏色:String color為什么使用String?例如,定義顏色“紅色”的方法是字符串類型輪胎數(shù):int num不需要Num初始化值。因為汽車輪胎的數(shù)量不確定,所以有4,6,8。奔跑行為(方法、函數(shù))void run()方法執(zhí)行輸出語句。蹺蹺板。);必須創(chuàng)建具有參數(shù)的配置方法,以創(chuàng)建對象并初始化品牌、顏色和輪子數(shù)。完成練習,2,教科書P81
8、頁2問題的代碼,分析結(jié)果。練習,1,Static關(guān)鍵字2,代碼塊3,類組合,第4.5節(jié)的授課內(nèi)容,第4.5節(jié)的復(fù)習(分析器),hotel1,hotel2,堆棧,堆棧, hilt,4.5之前的節(jié)包含了類中的成員類范圍的成員稱為靜態(tài)成員,使用static關(guān)鍵字聲明。使用類創(chuàng)建對象時,將打開存儲在堆內(nèi)存中的對象,并根據(jù)類模板為每個常規(guī)成員打開空間。也就是說,每個物件都有其自己的一般成員。靜態(tài)成員由該類創(chuàng)建的所有對象共享靜態(tài)成員,不再為靜態(tài)成員單獨分配空間。4.5 Static成員和方法信息、Static關(guān)鍵字、hotel1、hotel2、堆棧、堆棧、 hilton rooms 10020、 ruji
9、a room s520,常規(guī)成員將創(chuàng)建對象從另一個角度來看,靜態(tài)成員生成得更早。2、靜態(tài)成員由類中的所有對象共享。(master)3,靜態(tài)方法不能使用非靜態(tài)變量,靜態(tài)方法不能出現(xiàn)this關(guān)鍵字。(主)4,靜態(tài)成員和方法習慣于使用類名進行訪問,是常規(guī)成員和方法。必須使用對象進行訪問。4.5 static使用注意事項,練習編寫學生類,包括記錄學號、名字、性別、年齡和學生總數(shù)的數(shù)據(jù)成員。(1)制定合理的施工方法。(2)必須創(chuàng)建測試類,創(chuàng)建多個學生對象,并始終在學生總數(shù)中記錄學生對象數(shù)。,4.5.1 static成員,JAVA有兩個代碼塊。(1)配置代碼塊:創(chuàng)建對象時需要執(zhí)行的程序,存在于類中。只需使
10、用大括號。注:配置代碼塊和配置方法之間的區(qū)別。1:構(gòu)造函數(shù)與構(gòu)造函數(shù)的區(qū)別,構(gòu)造函數(shù)統(tǒng)一初始化所有對象,構(gòu)造函數(shù)初始化這些對象。2:代碼塊構(gòu)造的作用:用于提取所有構(gòu)造方法中的通用信息,如上述練習問題的計數(shù)器。4.5.2代碼塊,JAVA中有兩個代碼塊。(1)構(gòu)造代碼塊:創(chuàng)建對象時必須運行的程序,存在于類中。只需使用大括號。請考慮一個問題。如果類包含配置代碼塊,在創(chuàng)建對象時是先運行配置代碼塊,還是先運行構(gòu)造函數(shù)?4.5.2代碼塊、配置代碼塊、配置代碼塊、4.5.2靜態(tài)代碼塊,使用類時加載到內(nèi)存中。靜態(tài)代碼是加載類時要執(zhí)行的代碼。靜態(tài)代碼塊在加載類時只運行一次。配置方法比常規(guī)成員運行得早。靜態(tài)代碼塊
11、的格式:靜態(tài)/靜態(tài)代碼。4.5.2靜態(tài)代碼塊、事故問題: (由程序確定)類包含靜態(tài)成員、靜態(tài)代碼塊、配置代碼塊、非靜態(tài)成員和構(gòu)造函數(shù)。執(zhí)行順序是什么?靜態(tài)成員,靜態(tài)代碼塊,鄭智薰靜態(tài)成員,配置代碼,配置方法,public class hotel private static final int height=10;/標高private static final int WIDTH=12/房間數(shù)private String hotelName/酒店名稱private String rooms/酒店房間publich otel()rooms=new stringheightwidth;4.5.4類
12、常量的定義,在JAVA中,類和類之間存在多種關(guān)系。其中一個是“composition”關(guān)系,即組合關(guān)系。通俗地說,一個類的成員是另一個類的引用。例如,汽車類的一個成員可以是引擎類的引用。代表汽車“has a”引擎。在JAVA中,一個類的設(shè)計盡可能可重用,必須在另一個類中使用。4.7類組合關(guān)系,class GarageTest /停車場類public String name/停車場名稱public ParkingSet parkingSet/停車資訊:ParkingSet陣列/ParkingSet :停車類別class ParkingSet/停車類別public boolean status/停
13、車狀態(tài)public String ParkingNum/停車位編號public Car car/車輛信息class Car /汽車類public String name/車輛品牌public String carnum/車牌號碼,例如,設(shè)計簡單的停車生產(chǎn)系統(tǒng)。要求:(1) a .設(shè)計具有“停車場名稱(String):”歷史停車場名稱屬性的停車場類Garage。b .停車空間總數(shù)(int):停車空間總數(shù)請設(shè)計成2個。c .停車位(ParkingSet):要設(shè)計兩個停車位,請使用陣列。方法如下:a .需要構(gòu)造函數(shù)。B.setcar()方法:停車。如果有空位的話,請把車停在停車場。否則,“車庫已滿?!背霈F(xiàn)消息。C.query()方法:用于查看有關(guān)指定停車位的信息(調(diào)用停車位的display方法)。綜合練習,設(shè)計簡單的停車生產(chǎn)系統(tǒng)。要求:(2)設(shè)計具有以下屬性的停車場類ParkingSet:a .停車狀態(tài)(boolean):記錄停車位是否在使用中。b .停車號碼:停車號碼。c .停車位的車輛信息(Car):顯示停車位的汽車信息。未使用時顯示“null”。方法如下:a .需要構(gòu)造函數(shù)。B.setcar()方法:將車輛信息寫入停車位。C. searchPS()方法:查詢當前停車狀態(tài)。D.display()方法:顯
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深化教育改革與人才培養(yǎng)質(zhì)量提升并行
- 村計生專干申請書
- ktv模特簽約合同范例
- 養(yǎng)殖托管合同范例
- 個人和公司汽車租賃合同范本
- 特殊崗位聘用合同范本
- 冷暖設(shè)備采購合同范本
- 借網(wǎng) 合同范本
- 交金合同范例
- 修補打磨合同范例
- 中國水利水電第十二工程局有限公司招聘筆試真題2023
- DB37-T3953-2020醫(yī)療衛(wèi)生機構(gòu)安全風險分級管控體系實施指南
- 工業(yè)機器人系統(tǒng)運維員(中級)課件全套 宋永昌 項目1-3 機械系統(tǒng)檢查與診斷-工業(yè)機器人運行維護與保養(yǎng)
- T-CSPSTC 111-2022 表層混凝土低滲透高密實化施工技術(shù)規(guī)程
- 浩順一卡通軟件新版說明書
- 2024年高考英語新課標1卷講評(七選五+完形填空+語法填空)-2025屆高三英語一輪復(fù)習
- 植物檢疫員崗位職責說明書
- 2023~2024學年二年級下冊語文期末??荚嚲怼?chuàng)意情境 統(tǒng)編版
- 經(jīng)理層年度任期經(jīng)營業(yè)績考核及薪酬辦法
- 2024年高考英語新聞報道閱讀理解訓(xùn)練歷年真題
- 行政倫理學教程(第四版)課件 第1章 行政倫理的基本觀念
評論
0/150
提交評論