




已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟮某绦蛟O(shè)計(jì),第3章,2,本章總體綱要,類、域、方法和實(shí)例對(duì)象 繼承性 多態(tài)性 包(package) 封裝性 關(guān)鍵字abstract、static、final和this 接口 內(nèi)部類 變量作用域范圍和參數(shù)傳遞方式 面向?qū)ο蟪绦蛟O(shè)計(jì)基本思想,3,3.1 類、域、方法和實(shí)例對(duì)象,目標(biāo) 1 面向?qū)ο蟮母拍?對(duì)象和類的概念 面向?qū)ο蟮娜蠡咎卣鳎悍庋b、繼承、多態(tài) 2 類 類的定義 類的成員:成員變量和成員方法 構(gòu)造方法 3 對(duì)象 對(duì)象的創(chuàng)建和引用 Java的垃圾回收機(jī)制,思考,開發(fā)一個(gè)在線考試系統(tǒng),需要?jiǎng)?chuàng)建哪些類? 這些類的成員分別有什么?,5,1 面向?qū)ο蟮母拍?對(duì)象,對(duì)象是具有某些特殊屬性(數(shù)據(jù))和行為方式(方法)的實(shí)體。 可以是有生命的個(gè)體,比如一個(gè)人或一只老虎。也可以是無生命的個(gè)體,比如一輛汽車或一臺(tái)計(jì)算機(jī)。也可以是一個(gè)抽象的概念,如天氣的變化或鼠標(biāo)所產(chǎn)生的事件。,兩個(gè)特征:屬性(Property)和行為(Behavior) 如:一個(gè)人的屬性有:姓名、性別、年齡、身高、體重等 行為有:唱歌、打球、騎車、學(xué)習(xí)等。,從眾多對(duì)象中歸納出“類”,電視機(jī)A 品牌:飛利浦 型號(hào):34寸高清 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,抽象,電視機(jī)類 品牌: 型號(hào): 行為:,從類實(shí)例化一個(gè)對(duì)象,電視機(jī)B 品牌:LG 型號(hào):21寸純平 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,電視機(jī)C 品牌:東芝 型號(hào):44寸液晶 行為:開 關(guān) 選頻道 調(diào)聲音 顏色,類的屬性和行為-類的成員,從類實(shí)例化一個(gè)對(duì)象,屬性,行為,成員變量(也稱成員域),成員方法,類的成員,類,類是具有共同屬性和行為的對(duì)象的抽象。 類可以定義為數(shù)據(jù)和方法的集合。 對(duì)象具有特殊屬性和行為方式的實(shí)體。,類,對(duì)象,抽象,實(shí)例化,封裝的實(shí)體=數(shù)據(jù)+方法,操作或行為,屬性或狀態(tài),成員方法,成員變量,消息,單一對(duì)象的存在并沒有多大的作用,只有多個(gè)對(duì)象相互作用才會(huì)完成復(fù)雜的行為。 對(duì)象和對(duì)象之間是通過傳遞消息來完成相互通信的。 一個(gè)消息由三方面內(nèi)容組成: 1)消息的接收者,即消息的目標(biāo)對(duì)象; 2)接收對(duì)象采用的方法; 3)執(zhí)行方法所需用的參數(shù)(Parameters)。,例如:一輛自行車放在車棚中并沒有什么用,當(dāng)我們?nèi)蓑T 上它,并加速時(shí)才體現(xiàn)它的作用,其中接收者(自行車), 采用的方法(加速),所需的參數(shù)(上升到更高的檔位)。,面向?qū)ο蟮幕咎卣?1.封裝:將數(shù)據(jù)成員(Data Member)和屬于此數(shù)據(jù)的操作方法(Operating Method),放在同一個(gè)實(shí)體(Entity)或?qū)ο笾小?2.繼承:父類定義(Define)一些通用的屬性與行為,其子類繼續(xù)使用。 3.多態(tài):在同一個(gè)類中可有許多同名的方法,但其參數(shù)數(shù)量與數(shù)據(jù)類型不同,而且操作過程與返回值也可能會(huì)不同。,(1)模塊化 (2)信息隱藏,(1)實(shí)現(xiàn)代碼復(fù)用 (2)簡(jiǎn)化設(shè)計(jì)過程,解決其他語言中不能重名的問題,面向?qū)ο蟮幕咎卣鳎悍庋b定義,面向?qū)ο蟮幕咎卣鳎悍庋b舉例,“學(xué)生對(duì)象”的內(nèi)部數(shù)據(jù): 個(gè)人基本信息(年齡、身高、家庭信息) 在校情況(專業(yè),班級(jí),宿舍,任職等) 選修課表 成績清單(考試,課程設(shè)計(jì),畢業(yè)設(shè)計(jì)成績),入學(xué)/注冊(cè) 修課/考試 查詢成績 畢業(yè)答辯,只能通過接口來操作對(duì)象,不能隨意修改內(nèi)部數(shù)據(jù),面向?qū)ο蟮幕咎卣鳎豪^承,家電類(父類) 數(shù)據(jù):功率 品牌 型號(hào) 方法:?jiǎn)?dòng),停止,電視機(jī)類(子類) 數(shù)據(jù):功率 品牌 型號(hào) 尺寸 方法:?jiǎn)?dòng),停止 選頻道 調(diào)色彩聲音,冰箱類(子類) 數(shù)據(jù):功率 品牌 型號(hào) 容量 功能 方法:?jiǎn)?dòng),停止 調(diào)溫度,開關(guān)門,自動(dòng)擁有父類的數(shù)據(jù),方法,繼承,子類繼承其父類的所有變量和方法 還可以增加自己需要的變量和方法,虛框:該類的對(duì)象,類繼承的實(shí)現(xiàn),被繼承的類稱為父類 繼承父類的類稱為子類 執(zhí)行繼承時(shí),子類將獲得父類的屬性,并具有自身特有的屬性。,Emoloyee類: name sex,Worker類: category ressAllowance,Officer類: empClass vehicle,工人類,繼承了父 類的姓名和性別屬 性外還包含類別和 是否有服裝津貼屬性,主任類,還包含 級(jí)別和是否配備 交通工具屬性,職員類,具 有姓名和性 別兩個(gè)屬性,多繼承:一個(gè)類有多個(gè)父類,即直接繼承多個(gè)類,多繼承,注: Java類只能有一個(gè)父類,面向?qū)ο蟮幕咎卣鳎憾鄳B(tài),家電類(父類) 數(shù)據(jù):功率 品牌 型號(hào) 方法:?jiǎn)?dòng),停止,電視機(jī)類(子類) 數(shù)據(jù):功率 品牌 型號(hào) 尺寸 方法:?jiǎn)?dòng),停止 選頻道 調(diào)色彩聲音,冰箱類(子類) 數(shù)據(jù):功率 品牌 型號(hào) 容量 功能 方法:?jiǎn)?dòng),停止 調(diào)溫度,開關(guān)門,啟動(dòng)電視: 顯示圖像,聲音,啟動(dòng)冰箱:開始制冷,繼承,多態(tài):相同的消息被送到不同的對(duì)象 時(shí)有不同的實(shí)現(xiàn),繼承,18,2 類,19,類的定義,類的定義格式如下: 類修飾詞 class 類名 extends 父類名 implements 接口名稱列表 類體 ,extends關(guān)鍵字用于繼承類,implement關(guān)鍵字用于實(shí)現(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,類的成員,從類實(shí)例化一個(gè)對(duì)象,成員變量(也稱成員域),成員方法,22,成員變量,成員變量是類的屬性,聲明的一般格式為: 變量修飾符 變量修飾符:public、protected、private、和默認(rèn)(friendly)。 成員變量,實(shí)例變量,類變量: 靜態(tài)變量, 用static進(jìn)行修飾,23,成員方法,成員方法定義的類的操作和行為,一般形式為: 方法修飾符 () 方法體 成員方法修飾符主要有public、private、protected、final、static、abstract和synchronized七種,前三種的訪問權(quán)限、說明形式和含義與成員變量一致。 與成員變量類似,成員方法也分為實(shí)例方法和類方法。如果方法定義中使用了static ,則該方法為類方法。public static void main(String args)就是一個(gè)典型的類方法,24,類成員的常用修飾符及訪問范圍,25,思考,開發(fā)一個(gè)在線考試系統(tǒng),需要?jiǎng)?chuàng)建哪些類? 這些類的成員分別有什么?,26,試題類(Testquestion類) 屬性:包括試題內(nèi)容、答案、用戶選擇的答案等。 方法:獲取取試題、設(shè)置選擇的答案、獲取選擇的答案、設(shè)置標(biāo)準(zhǔn)答案、獲取標(biāo)準(zhǔn)答案、檢查答案正確與否等。,類成員和實(shí)例成員,在類的定義中,成員變量和成員方法前面 帶有static的為類屬性和類方法; 不帶static的為實(shí)例屬性和實(shí)例方法。,類屬性和類方法,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(); 運(yùn)行結(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“); ,與類屬性和類方法相比較 ,實(shí)例屬性和實(shí)例方法必須在實(shí)例化變量之后才能使用, 將上例中Animal.move()換成Animal.eat(), 結(jié)果如何?為什么?,實(shí)例屬性和實(shí)例方法,eat()是實(shí)例方法,只能由類的對(duì)象調(diào)用 也就是只能a1.eat(),或a2.eat(),31,構(gòu)造方法,構(gòu)造方法在創(chuàng)建新的實(shí)例對(duì)象時(shí)起作用 構(gòu)造方法通常用來初始化實(shí)例對(duì)象,例如: 初始化成員域或設(shè)置工作環(huán)境,構(gòu)造方法,構(gòu)造方法名稱與類名稱相同 構(gòu)造方法沒有返回類型 其任務(wù)是在創(chuàng)建對(duì)象時(shí)初始化其內(nèi)部狀態(tài) 若無定義系統(tǒng)默認(rèn)有一個(gè)無參構(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è)基本特點(diǎn) 父類和子類的構(gòu)造方法有一定關(guān)聯(lián) (參見課本P62),34,默認(rèn)的構(gòu)造方法,如果沒有顯式地定義類的構(gòu)造方法,則系統(tǒng)會(huì)為該類定義一個(gè)默認(rèn)的構(gòu)造方法。該構(gòu)造方法不含任何參數(shù)。 -這個(gè)默認(rèn)的構(gòu)造方法首先調(diào)用其父類的不含任何參數(shù)的構(gòu)造方法,然后初始化新生成的實(shí)例的各個(gè)成員變量 - 默認(rèn)值: 基本數(shù)值類型: 0; boolean: false; 引用數(shù)據(jù)類型: null -最好自己寫構(gòu)造方法 一旦在類中定義了構(gòu)造方法,系統(tǒng)就不會(huì)再創(chuàng)建這個(gè)默認(rèn)的不含參數(shù)的構(gòu)造方法。,35,3 對(duì)象,對(duì)象的創(chuàng)建,對(duì)象的聲明和創(chuàng)建 類名 對(duì)象名; /聲明 對(duì)象名=new 類名(參數(shù));/創(chuàng)建 (2)對(duì)象的使用 對(duì)象名.成員變量名; 對(duì)象名.成員方法名(參數(shù)列表); (3)對(duì)象的銷毀 自動(dòng)垃圾回收機(jī)制周期性的釋放無用的對(duì)象。,(1)對(duì)象的創(chuàng)建,第一步:進(jìn)行對(duì)象的聲明。 一般形式為: ; 例如: Animal dog; 第二步:實(shí)例化對(duì)象,通過運(yùn)算符new實(shí)現(xiàn) 一般形式為: =new ; 例如: dog = new Animal( ) ; 以上兩步也可合并: =new ,38,對(duì)象的創(chuàng)建(舉例),對(duì)象的聲明只是創(chuàng)建變量的引用,并不分配內(nèi)存,要分配實(shí)際內(nèi)存空間,必須new關(guān)鍵字。,39,(2)對(duì)象的引用,對(duì)象創(chuàng)建之后,通過“”運(yùn)算符用于訪問對(duì)象中的成員變量和成員方法。 一般形式為: 由于類變量和類方法不屬于某個(gè)具體的對(duì)象,因此我們也可以直接使用類型替代對(duì)象名訪問類變量或類方法。 例如: Animal.age=3; Animal.eat( );,實(shí)例變量成員和實(shí)例方法成員只能通過對(duì)象來引用 例如,Point為類,p為Point的對(duì)象,p調(diào)用類的方法move格式如下: p.move(30,20); 同樣 ,也可以用new生成對(duì)象的引用 ,然后直接調(diào)用它的方法 ,如: new point().move(30,20);,(2)對(duì)象的引用,(3)對(duì)象的銷毀,有些面向?qū)ο笳Z言保持對(duì)所有對(duì)象的跟蹤,所以需要在對(duì)象不再使用的時(shí)候?qū)⑺鼈儚膬?nèi)存中清除。 JAVA當(dāng)對(duì)象不再被使用的時(shí)候?qū)⑵淝宄?,這就是所謂的“垃圾回收機(jī)制”。 JAVA的垃圾收集器:它周期性地自動(dòng)將不再被引用的對(duì)象從內(nèi)存中清除。 兩個(gè)有關(guān)垃圾回收的成員方法: gc( ) finalize( ) 參見課本P64和P65例,42,思考:,實(shí)現(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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年護(hù)士職業(yè)指導(dǎo)與規(guī)劃試題及答案
- 行政管理的動(dòng)態(tài)管理試題及答案
- 執(zhí)業(yè)藥師考試終極復(fù)習(xí)試題及答案
- 行政服務(wù)創(chuàng)新的實(shí)際案例與分析的試題及答案
- 2025年文化價(jià)值觀試題及答案
- 行政法學(xué)知識(shí)檢查試題與答案
- 2025年自考行政管理試題及答案全景
- 藥物使用中的風(fēng)險(xiǎn)管理相關(guān)考點(diǎn)試題及答案
- 影響力較大的主管護(hù)師試題及答案
- 2025年執(zhí)業(yè)藥師的考試結(jié)構(gòu)分析試題及答案
- UML面向?qū)ο笤O(shè)計(jì)與分析教程配套課件
- CJ∕T 51-2018 城鎮(zhèn)污水水質(zhì)標(biāo)準(zhǔn)檢驗(yàn)方法
- 職業(yè)技術(shù)學(xué)院《酒店管理概論》課程標(biāo)準(zhǔn)
- 煙花爆竹零售經(jīng)營場(chǎng)所安全管理新規(guī)制度
- 青綠色中國農(nóng)業(yè)科學(xué)院考研復(fù)試模板
- 能源轉(zhuǎn)型與綠色發(fā)展
- 2024年杭州錢塘新區(qū)產(chǎn)業(yè)發(fā)展集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 數(shù)字經(jīng)濟(jì)下平臺(tái)化人力資源管理對(duì)員工創(chuàng)新績效的影響研究-數(shù)字能力的調(diào)節(jié)效應(yīng)
- 建筑工程 施工組織設(shè)計(jì)范本
- 三亞旅游宣傳含內(nèi)容
- 2024年浙江省寧波市鄞州區(qū)部分學(xué)校九年級(jí)6月中考聯(lián)考英語試卷
評(píng)論
0/150
提交評(píng)論