




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
面向?qū)ο蟮某绦蛟O(shè)計,第3章,2,本章總體綱要,類、域、方法和實例對象 繼承性 多態(tài)性 包(package) 封裝性 關(guān)鍵字abstract、static、final和this 接口 內(nèi)部類 變量作用域范圍和參數(shù)傳遞方式 面向?qū)ο蟪绦蛟O(shè)計基本思想,3,3.1 類、域、方法和實例對象,目標(biāo) 1 面向?qū)ο蟮母拍?對象和類的概念 面向?qū)ο蟮娜蠡咎卣鳎悍庋b、繼承、多態(tài) 2 類 類的定義 類的成員:成員變量和成員方法 構(gòu)造方法 3 對象 對象的創(chuàng)建和引用 Java的垃圾回收機制,思考,開發(fā)一個在線考試系統(tǒng),需要創(chuàng)建哪些類? 這些類的成員分別有什么?,5,1 面向?qū)ο蟮母拍?對象,對象是具有某些特殊屬性(數(shù)據(jù))和行為方式(方法)的實體。 可以是有生命的個體,比如一個人或一只老虎。也可以是無生命的個體,比如一輛汽車或一臺計算機。也可以是一個抽象的概念,如天氣的變化或鼠標(biāo)所產(chǎn)生的事件。,兩個特征:屬性(Property)和行為(Behavior) 如:一個人的屬性有:姓名、性別、年齡、身高、體重等 行為有:唱歌、打球、騎車、學(xué)習(xí)等。,從眾多對象中歸納出“類”,電視機A 品牌:飛利浦 型號:34寸高清 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,抽象,電視機類 品牌: 型號: 行為:,從類實例化一個對象,電視機B 品牌:LG 型號:21寸純平 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,電視機C 品牌:東芝 型號:44寸液晶 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,類的屬性和行為-類的成員,從類實例化一個對象,屬性,行為,成員變量(也稱成員域),成員方法,類的成員,類,類是具有共同屬性和行為的對象的抽象。 類可以定義為數(shù)據(jù)和方法的集合。 對象具有特殊屬性和行為方式的實體。,類,對象,抽象,實例化,封裝的實體=數(shù)據(jù)+方法,操作或行為,屬性或狀態(tài),成員方法,成員變量,消息,單一對象的存在并沒有多大的作用,只有多個對象相互作用才會完成復(fù)雜的行為。 對象和對象之間是通過傳遞消息來完成相互通信的。 一個消息由三方面內(nèi)容組成: 1)消息的接收者,即消息的目標(biāo)對象; 2)接收對象采用的方法; 3)執(zhí)行方法所需用的參數(shù)(Parameters)。,例如:一輛自行車放在車棚中并沒有什么用,當(dāng)我們?nèi)蓑T 上它,并加速時才體現(xiàn)它的作用,其中接收者(自行車), 采用的方法(加速),所需的參數(shù)(上升到更高的檔位)。,面向?qū)ο蟮幕咎卣?1.封裝:將數(shù)據(jù)成員(Data Member)和屬于此數(shù)據(jù)的操作方法(Operating Method),放在同一個實體(Entity)或?qū)ο笾小?2.繼承:父類定義(Define)一些通用的屬性與行為,其子類繼續(xù)使用。 3.多態(tài):在同一個類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而且操作過程與返回值也可能會不同。,(1)模塊化 (2)信息隱藏,(1)實現(xiàn)代碼復(fù)用 (2)簡化設(shè)計過程,解決其他語言中不能重名的問題,面向?qū)ο蟮幕咎卣鳎悍庋b定義,面向?qū)ο蟮幕咎卣鳎悍庋b舉例,“學(xué)生對象”的內(nèi)部數(shù)據(jù): 個人基本信息(年齡、身高、家庭信息) 在校情況(專業(yè),班級,宿舍,任職等) 選修課表 成績清單(考試,課程設(shè)計,畢業(yè)設(shè)計成績),入學(xué)/注冊 修課/考試 查詢成績 畢業(yè)答辯,只能通過接口來操作對象,不能隨意修改內(nèi)部數(shù)據(jù),面向?qū)ο蟮幕咎卣鳎豪^承,家電類(父類) 數(shù)據(jù):功率 品牌 型號 方法:啟動,停止,電視機類(子類) 數(shù)據(jù):功率 品牌 型號 尺寸 方法:啟動,停止 選頻道 調(diào)色彩聲音,冰箱類(子類) 數(shù)據(jù):功率 品牌 型號 容量 功能 方法:啟動,停止 調(diào)溫度,開關(guān)門,自動擁有父類的數(shù)據(jù),方法,繼承,子類繼承其父類的所有變量和方法 還可以增加自己需要的變量和方法,虛框:該類的對象,類繼承的實現(xiàn),被繼承的類稱為父類 繼承父類的類稱為子類 執(zhí)行繼承時,子類將獲得父類的屬性,并具有自身特有的屬性。,Emoloyee類: name sex,Worker類: category ressAllowance,Officer類: empClass vehicle,工人類,繼承了父 類的姓名和性別屬 性外還包含類別和 是否有服裝津貼屬性,主任類,還包含 級別和是否配備 交通工具屬性,職員類,具 有姓名和性 別兩個屬性,多繼承:一個類有多個父類,即直接繼承多個類,多繼承,注: Java類只能有一個父類,面向?qū)ο蟮幕咎卣鳎憾鄳B(tài),家電類(父類) 數(shù)據(jù):功率 品牌 型號 方法:啟動,停止,電視機類(子類) 數(shù)據(jù):功率 品牌 型號 尺寸 方法:啟動,停止 選頻道 調(diào)色彩聲音,冰箱類(子類) 數(shù)據(jù):功率 品牌 型號 容量 功能 方法:啟動,停止 調(diào)溫度,開關(guān)門,啟動電視: 顯示圖像,聲音,啟動冰箱:開始制冷,繼承,多態(tài):相同的消息被送到不同的對象 時有不同的實現(xiàn),繼承,18,2 類,19,類的定義,類的定義格式如下: 類修飾詞 class 類名 extends 父類名 implements 接口名稱列表 類體 ,extends關(guān)鍵字用于繼承類,implement關(guān)鍵字用于實現(xiàn)接口,類的修飾符用于說明類的性質(zhì)和訪問權(quán)限,包括public、private、abstract、final。,其中public表示可以被任何其他代碼訪問,abstract表示抽象類,final表示最終類。,類體部分定義了該類所包括的所有成員變量和成員方法,class Animal String name; int age; public void eat() System.out.println(“Eating“); public void move() System.out.println(“Moving“); ,類的定義 舉例,Animal的成員變量,Animal的成員方法,21,類的成員,從類實例化一個對象,成員變量(也稱成員域),成員方法,22,成員變量,成員變量是類的屬性,聲明的一般格式為: 變量修飾符 變量修飾符:public、protected、private、和默認(friendly)。 成員變量,實例變量,類變量: 靜態(tài)變量, 用static進行修飾,23,成員方法,成員方法定義的類的操作和行為,一般形式為: 方法修飾符 () 方法體 成員方法修飾符主要有public、private、protected、final、static、abstract和synchronized七種,前三種的訪問權(quán)限、說明形式和含義與成員變量一致。 與成員變量類似,成員方法也分為實例方法和類方法。如果方法定義中使用了static ,則該方法為類方法。public static void main(String args)就是一個典型的類方法,24,類成員的常用修飾符及訪問范圍,25,思考,開發(fā)一個在線考試系統(tǒng),需要創(chuàng)建哪些類? 這些類的成員分別有什么?,26,試題類(Testquestion類) 屬性:包括試題內(nèi)容、答案、用戶選擇的答案等。 方法:獲取取試題、設(shè)置選擇的答案、獲取選擇的答案、設(shè)置標(biāo)準(zhǔn)答案、獲取標(biāo)準(zhǔn)答案、檢查答案正確與否等。,類成員和實例成員,在類的定義中,成員變量和成員方法前面 帶有static的為類屬性和類方法; 不帶static的為實例屬性和實例方法。,類屬性和類方法,class Animal int weight; String colour; static int count=0; Animal( ) +count; System.out.println(“The total number of Animal is:“+count); public void eat( ) System.out.println(“Eating“); public static void move( ) System.out.println(“Animal can Moving“); ,成員屬性 成員方法,public class StaticTest1 public static void main( String args ) System.out.println(“The total number of Animal is:“+ Animal.count); Animal.move(); Animal a1=new Animal(); Animal a2=new Animal(); 運行結(jié)果為: The total number of Animal is:0 Animal can Moving The total number of Animal is:1 The total number of Animal is:2,class Animal int weight; String colour; static int count=0; Animal( ) +count; System.out.println(“The total number of Animal is:“+count); public void eat( ) System.out.println(“Eating“); public static void move( ) System.out.println(“Animal can Moving“); ,與類屬性和類方法相比較 ,實例屬性和實例方法必須在實例化變量之后才能使用, 將上例中Animal.move()換成Animal.eat(), 結(jié)果如何?為什么?,實例屬性和實例方法,eat()是實例方法,只能由類的對象調(diào)用 也就是只能a1.eat(),或a2.eat(),31,構(gòu)造方法,構(gòu)造方法在創(chuàng)建新的實例對象時起作用 構(gòu)造方法通常用來初始化實例對象,例如: 初始化成員域或設(shè)置工作環(huán)境,構(gòu)造方法,構(gòu)造方法名稱與類名稱相同 構(gòu)造方法沒有返回類型 其任務(wù)是在創(chuàng)建對象時初始化其內(nèi)部狀態(tài) 若無定義系統(tǒng)默認有一個無參構(gòu)造方法,構(gòu)造方法,class Point int x,y; Point( ) /不帶參數(shù)的構(gòu)造方法 x=0; y=0; Point(int ix, int iy) /帶參數(shù)的構(gòu)造方法 x=ix; y=iy; void move( int newX, int newY ) x = newX; y = newY; ,構(gòu)造方法沒有返回類型,構(gòu)造方法名與類名相同,構(gòu)造方法的三個基本特點 父類和子類的構(gòu)造方法有一定關(guān)聯(lián) (參見課本P62),34,默認的構(gòu)造方法,如果沒有顯式地定義類的構(gòu)造方法,則系統(tǒng)會為該類定義一個默認的構(gòu)造方法。該構(gòu)造方法不含任何參數(shù)。 -這個默認的構(gòu)造方法首先調(diào)用其父類的不含任何參數(shù)的構(gòu)造方法,然后初始化新生成的實例的各個成員變量 - 默認值: 基本數(shù)值類型: 0; boolean: false; 引用數(shù)據(jù)類型: null -最好自己寫構(gòu)造方法 一旦在類中定義了構(gòu)造方法,系統(tǒng)就不會再創(chuàng)建這個默認的不含參數(shù)的構(gòu)造方法。,35,3 對象,對象的創(chuàng)建,對象的聲明和創(chuàng)建 類名 對象名; /聲明 對象名=new 類名(參數(shù));/創(chuàng)建 (2)對象的使用 對象名.成員變量名; 對象名.成員方法名(參數(shù)列表); (3)對象的銷毀 自動垃圾回收機制周期性的釋放無用的對象。,(1)對象的創(chuàng)建,第一步:進行對象的聲明。 一般形式為: ; 例如: Animal dog; 第二步:實例化對象,通過運算符new實現(xiàn) 一般形式為: =new ; 例如: dog = new Animal( ) ; 以上兩步也可合并: =new ,38,對象的創(chuàng)建(舉例),對象的聲明只是創(chuàng)建變量的引用,并不分配內(nèi)存,要分配實際內(nèi)存空間,必須new關(guān)鍵字。,39,(2)對象的引用,對象創(chuàng)建之后,通過“”運算符用于訪問對象中的成員變量和成員方法。 一般形式為: 由于類變量和類方法不屬于某個具體的對象,因此我們也可以直接使用類型替代對象名訪問類變量或類方法。 例如: Animal.age=3; Animal.eat( );,實例變量成員和實例方法成員只能通過對象來引用 例如,Point為類,p為Point的對象,p調(diào)用類的方法move格式如下: p.move(30,20); 同樣 ,也可以用new生成對象的引用 ,然后直接調(diào)用它的方法 ,如: new point().move(30,20);,(2)對象的引用,(3)對象的銷毀,有些面向?qū)ο笳Z言保持對所有對象的跟蹤,所以需要在對象不再使用的時候?qū)⑺鼈儚膬?nèi)存中清除。 JAVA當(dāng)對象不再被使用的時候?qū)⑵淝宄?,這就是所謂的“垃圾回收機制”。 JAVA的垃圾收集器:它周期性地自動將不再被引用的對象從內(nèi)存中清除。 兩個有關(guān)垃圾回收的成員方法: gc( ) finalize( ) 參見課本P64和P65例,42,思考:,實現(xiàn)考試系統(tǒng)中所需要的試題類(Testquestion類) 屬性:包括試題內(nèi)容、答案、用戶選擇的答案等。 方法:獲取取試題、設(shè)置選擇的答案、獲取選擇的答案、設(shè)置標(biāo)準(zhǔn)答案、獲取標(biāo)準(zhǔn)答案、檢查答案正確與否等。,43,定義Testquestion類,class Testquestion private String questionText = “; /試題內(nèi)容 private String standardKey;/答案 private String selectedKey; /選擇的答案 public String getQuestion() return questionText ; /獲取試題 public void setQuestion(String s) questionText = s; public String getSelectedKey() /獲取選擇的答案
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 整車制造綠色環(huán)保技術(shù)應(yīng)用考核試卷
- 木材采伐作業(yè)成本控制考核試卷
- 衛(wèi)生材料的社會影響與企業(yè)責(zé)任考核試卷
- 在建工地安全課件模板
- 工廠院內(nèi)改造合同范本
- 公司聘用合同范本6
- 土地小院出租合同范本
- 團隊合作合同范本
- 鋁廠服裝租借合同范本
- 小學(xué)生注意力課件
- 學(xué)術(shù)論文的寫作與規(guī)范課件
- 香港牛津新魔法Newmagic3AUnit4Mycalendar單元檢測試卷
- 中考《紅星照耀中國》各篇章練習(xí)題及答案(1-12)
- Q∕GDW 11612.43-2018 低壓電力線高速載波通信互聯(lián)互通技術(shù)規(guī)范 第4-3部分:應(yīng)用層通信協(xié)議
- 自動化物料編碼規(guī)則
- 第1本書出體旅程journeys out of the body精教版2003版
- [英語考試]同等學(xué)力英語新大綱全部詞匯
- 長RP心動過速的心電圖鑒別診斷
- 最簡易的帕累托圖制作方法簡介PPT課件
- 年產(chǎn)5萬噸丁苯橡膠生產(chǎn)工藝設(shè)計
- 《克和千克》數(shù)學(xué)學(xué)科滲透法制教育教案
評論
0/150
提交評論