![第5面向?qū)ο笊螦-ppt課件_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/86a5d5b2-227d-445d-bc39-09f696b23954/86a5d5b2-227d-445d-bc39-09f696b239541.gif)
![第5面向?qū)ο笊螦-ppt課件_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/86a5d5b2-227d-445d-bc39-09f696b23954/86a5d5b2-227d-445d-bc39-09f696b239542.gif)
![第5面向?qū)ο笊螦-ppt課件_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/86a5d5b2-227d-445d-bc39-09f696b23954/86a5d5b2-227d-445d-bc39-09f696b239543.gif)
![第5面向?qū)ο笊螦-ppt課件_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/86a5d5b2-227d-445d-bc39-09f696b23954/86a5d5b2-227d-445d-bc39-09f696b239544.gif)
![第5面向?qū)ο笊螦-ppt課件_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/12/86a5d5b2-227d-445d-bc39-09f696b23954/86a5d5b2-227d-445d-bc39-09f696b239545.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第5章 面向?qū)ο笊?.1 類和對象 面向?qū)ο蟮某绦蛟O(shè)計(jì)過程中有兩個(gè)重要概念:類Class和對象Object,也被稱為實(shí)例,instance。 類是對某一類事物的描畫,是籠統(tǒng)的、概念上的定義;對象是實(shí)踐存在的該類事物的每個(gè)個(gè)體,因此也稱實(shí)例(instance)。 構(gòu)造化程序設(shè)計(jì)與OOP的區(qū)別 構(gòu)造化編程的根本思想就是把大的程序劃分為假設(shè)干個(gè)相對獨(dú)立、功能簡單的程序模塊。它以過程為中心,強(qiáng)調(diào)的是過程,強(qiáng)調(diào)功能和模塊化。經(jīng)過一系列過程的調(diào)用和處置完成相應(yīng)的義務(wù)。 面向?qū)ο缶幊桃詫ο鬄橹行?,是對一系列相關(guān)對象的支配,發(fā)送音訊給對象,由對象執(zhí)行相應(yīng)的操作并前往結(jié)果,強(qiáng)調(diào)的是對象。5.1.1 定義類1、
2、類的普通方式 類的定義由類聲明和類體組成,而類體又由成員變量和成員方法組成類定義舉例public class Personpublic int age;public void shout()System.out.println(“oh,my god! I am “ + age);shout方法可以直接訪問同一個(gè)類中的age變量 ,假設(shè)一個(gè)方法中有與成員變量同名的部分變量,該方法中對這個(gè)變量名的訪問是部分變量,而不再是成員變量。age是類的屬性 ,也叫類成員變量 shout是方法也叫類的成員函數(shù)詳細(xì)闡明1:類聲明 類聲明由四部分組成:類修飾符、類關(guān)鍵字class、聲明父類、實(shí)現(xiàn)接口,其普通方式如
3、下: publicabstract|final class 類名 extends 父類名 implements 接口列表 1 類修飾符public:這個(gè)public關(guān)鍵字聲明了類可以在其他類中運(yùn)用。缺省時(shí),該類只能被同一個(gè)包中的其他類運(yùn)用。abstract:聲明這個(gè)類為籠統(tǒng)類,即這個(gè)類不能被實(shí)例化。final:聲明該類不能被承繼,即不能有子類。也就是說,不能用它經(jīng)過擴(kuò)展的方法來創(chuàng)建新類。2 類的關(guān)鍵字class在類聲明中,class是聲明類的關(guān)鍵字,表示類聲明的開場,類聲明后面跟著類名,按習(xí)慣類名要用大寫字母開頭,并且類名不能用阿拉伯?dāng)?shù)字開頭。給類名命名時(shí),最好取一個(gè)容易識(shí)別且有意義的名字,防
4、止A、B、C之類的類名。 3 聲明父類extends為聲明該類的父類,這闡明該類是其父類的子類。一個(gè)子類可以從它的父類承繼變量和方法。extends只能實(shí)現(xiàn)單承繼。創(chuàng)建子類格式:class subclass extends 父類名范例:產(chǎn)品管理系統(tǒng)中類的設(shè)計(jì)產(chǎn)品類(goods)衣服類手機(jī)類詳細(xì)闡明2: 類體 類體可以包含三種最常見的成員: 構(gòu)造器、Field(成員變量)和成員方法Field(成員變量)定義Field的語法格式如下:修飾符 Field 類型 Field名 =默許值 ;【闡明】修飾符:修飾符可以省略,也可以是public、protected、private、static、final
5、,其中public、protected、private三個(gè)最多只能出現(xiàn)其中之一。Field類型:Field類型可以是java言語允許的任何數(shù)據(jù)類型。Field名:只需是合法的標(biāo)識(shí)符即可。默許值:定義Field還可以指定一個(gè)可選的默許值成員方法定義方法的語法格式如下:修飾符 方法前往值類型 方法名 形參列表.由多條可執(zhí)行語句【闡明】修飾符的涵義和Field修飾符的涵義一樣。修正CloseWare類 添加一個(gè)新的屬性discount和一個(gè)方法,計(jì)算折扣后價(jià)錢的方法。price變量從哪里來的?構(gòu)造器 構(gòu)造器(又稱為構(gòu)造方法constructor)是一類特殊的方法,從功能上講,它是用來對新創(chuàng)建的對象進(jìn)
6、展初始化的,從方式上來講,它有以下特點(diǎn) 它與類同名 它沒有任何前往值 除了上述兩點(diǎn)外,在語法構(gòu)造上與普通的方法一樣 范例:class A A() /初始化代碼初始化代碼 /其它代碼其它代碼 Java要求程序中每個(gè)變量在運(yùn)用前都要先初始化,包括新創(chuàng)建的對象 在我們運(yùn)用new關(guān)鍵字來創(chuàng)建一個(gè)類的對象時(shí),類的一個(gè)構(gòu)造方法會(huì)自動(dòng)被調(diào)用,來完成初始化這個(gè)新對象的義務(wù)。 假設(shè)程序員沒有為一個(gè)類編寫構(gòu)造器,那么系統(tǒng)會(huì)為該類提供一個(gè)默許的構(gòu)造器。一旦程序員為一個(gè)類提供了構(gòu)造器,系統(tǒng)將不再為該類提供構(gòu)造器。練習(xí):定義一個(gè)汽車類 汽車類的屬性: 產(chǎn)地、消費(fèi)商、顏色、速度、檔位。 汽車類的方法:點(diǎn)火啟動(dòng)、換擋、減速
7、、加速。 為汽車類創(chuàng)建定義構(gòu)造器練習(xí):定義一個(gè)Person類 person類的屬性:姓名、年齡、性別等等 person類的方法:走路、跑步、騰躍注:在對應(yīng)的方法內(nèi)只寫一句輸出語句即可,例如System.out.println(在跑步);5.1.2 對象的產(chǎn)生和運(yùn)用 創(chuàng)建對象的根本途徑是構(gòu)造器,經(jīng)過new關(guān)鍵字來調(diào)用某個(gè)類的構(gòu)造器即可創(chuàng)建這個(gè)類的實(shí)例。例:Person p; P=new Person();上面的代碼也可以簡寫成如下方式Person p=new Person();定義一個(gè)Person類型的變量經(jīng)過new 關(guān)鍵字調(diào)用Person類的構(gòu)造器,前往一個(gè)Person實(shí)例,并將該P(yáng)erson
8、實(shí)例賦給p變量 類里定義的方法和Field都可以經(jīng)過類或?qū)嵗齺碚{(diào)用。類或?qū)嵗L問方法或Field的語法是:類.Field類.方法名實(shí)例.Field實(shí)例.方法名Person.java源文件的代碼源文件的代碼helloworld.java源文件的代碼源文件的代碼程序運(yùn)轉(zhuǎn)結(jié)果:程序運(yùn)轉(zhuǎn)結(jié)果:練習(xí)時(shí)間: 根據(jù)前面定義的類 創(chuàng)建一個(gè)衣服類對象 并賦予其部分屬性值如下: productname 褲子 producer 七匹狼 price 100 gcolor 黑色discount 0.8f gsize 32gtype 男士產(chǎn)品類(goods)衣服類手機(jī)類運(yùn)轉(zhuǎn)結(jié)果運(yùn)轉(zhuǎn)結(jié)果5.1.3 對象、援用和指針對象的產(chǎn)
9、生Person p1 = new Person();執(zhí)行完后的內(nèi)存形狀 類是一種援用數(shù)據(jù)類型,程序中定義的Person類型的變量實(shí)踐上是一個(gè)援用,它被放在棧內(nèi)存里,指向?qū)嵺`的Person對象;而真正的Person對象那么存放該在堆內(nèi)存中。 援用變量與C言語里的指針很像,它們都是存儲(chǔ)一個(gè)地址值,經(jīng)過這個(gè)地址來援用到實(shí)踐對象。程序中渣滓的產(chǎn)生 假設(shè)堆內(nèi)存里的對象沒有任何變量指向該對象,那么程序?qū)o法再訪問該對象,這個(gè)對象也就變成渣滓,java的渣滓回收機(jī)制將回收該對象,釋放該對象所占的內(nèi)存區(qū)。5.1.4 對象的this援用 Java提供了一個(gè)this關(guān)鍵字,this關(guān)鍵字是一個(gè)對象的默許援用。th
10、is關(guān)鍵字總是指向調(diào)用該方法的對象。 this關(guān)鍵字最大的作用就是讓類中一個(gè)方法,訪問該類的另一個(gè)方法或?qū)傩?。為了調(diào)用jump方法,能否一定必需求重新創(chuàng)建一個(gè)Dog對象呢?【答案】不需求,由于在執(zhí)行run方法的時(shí)候系統(tǒng)中曾經(jīng)存在一個(gè)dog對象了。修正后的程序代碼,修正后的程序代碼,運(yùn)用運(yùn)用this關(guān)鍵字,關(guān)鍵字,來調(diào)用對象本身的來調(diào)用對象本身的jump方法方法區(qū)別dogddog 大部分時(shí)候,一個(gè)方法訪問一樣實(shí)例的其他方法、屬性時(shí)加不加前綴的效果是完全一樣的。所以前面的程序代碼可以改成如下方式。 假設(shè)方法里有個(gè)部分變量和屬性同名,但程序又需求在該方法里訪問這個(gè)被覆蓋的屬性,那么必需運(yùn)用this前
11、綴。閱讀以下程序代碼,程序運(yùn)轉(zhuǎn)輸出什么結(jié)果?5.2 方法詳解 方法是類或?qū)ο蟮男袨樘卣鞯幕\統(tǒng)。從功能上來看,方法類似于傳統(tǒng)構(gòu)造化程序設(shè)計(jì)里的函數(shù)。Java的方法不能獨(dú)立存在,一切的方法都必需定義在類里。方法的聲明方式如下:前往類型方法名方式參數(shù)方法體內(nèi)容 5.2.2 方法的參數(shù)傳送機(jī)制 Java言語里方法的參數(shù)傳送方式只需一種:值傳送。所謂值傳送,就是將實(shí)踐參數(shù)值的副本復(fù)制品傳入方法內(nèi),而參數(shù)本身不會(huì)遭到任何影響。閱讀以下程序代碼程序輸出結(jié)果swap方法里,a=9;b=6交換終了后,實(shí)參a的值是6;實(shí)參b的值是9對象作為函數(shù)參數(shù) Java對于援用類型的參數(shù)傳送,一樣采用的是值傳送的方式。 當(dāng)對
12、象作為函數(shù)參數(shù)時(shí),在函數(shù)中只能改動(dòng)該對象的形狀,但不能改動(dòng)該對象的援用運(yùn)轉(zhuǎn)結(jié)果運(yùn)轉(zhuǎn)結(jié)果5.2.5 方法重載 Java允許同一個(gè)類里定義多個(gè)同名方法,只需形參列表不同就可。假好像一個(gè)類中包含了兩個(gè)或兩個(gè)以上方法的方法名一樣,但形參列表不同,那么被稱為方法重載。 方法重載的要求就是兩同、一不同:同一個(gè)類中方法名一樣,參數(shù)列表不同。運(yùn)轉(zhuǎn)結(jié)果雖然兩個(gè)test方法的方法名一樣,但由于它們的形參列表不同,所以系統(tǒng)可以正常區(qū)分出這兩個(gè)方法類方法與實(shí)例方法 類變量與實(shí)例變量 成員變量分為類變量和實(shí)例變量,類中的方法也分為類方法和實(shí)例方法。前加static的為類方法/類變量,不加的為實(shí)例方法/實(shí)例變量。 實(shí)例方
13、法既能對類變量操作又能對實(shí)例變量操作,既能調(diào)用類方法又能調(diào)用實(shí)例方法;而類方法只能對類變量進(jìn)展操作,而不能直接操作實(shí)例變量,不能直接調(diào)用實(shí)例方法。 類方法類變量不僅可以由對象調(diào)用而且還可以直接由類名調(diào)用(在同一類中,類名可以省略),而實(shí)例方法不能由類名調(diào)用 。 class Personclass Person static boolean mind; /static boolean mind; /類變量類變量String mood; /String mood; /實(shí)例變量實(shí)例變量void init(String s,boolean m) /void init(String s,boolean
14、m) /實(shí)例方法實(shí)例方法 mind=m;mind=m;mood=s;mood=s;System.out.println(m+s); System.out.println(m+s); static void print() /static void print() /類方法類方法 if(mind=true) System.out.println(“have a brain if(mind=true) System.out.println(“have a brain);); else System.out.println(“no brain else System.out.println(“no brain);); public static void main(String args) Pers
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2031年中國背景音樂廣播語音系統(tǒng)行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年電渦流緩速器控制器項(xiàng)目可行性研究報(bào)告
- 2025至2031年中國熱熔膠噴槍行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025至2031年中國帶燈熒光筆行業(yè)投資前景及策略咨詢研究報(bào)告
- 2025年對焊加強(qiáng)管座項(xiàng)目可行性研究報(bào)告
- 2025年臺(tái)式移印打碼機(jī)項(xiàng)目可行性研究報(bào)告
- 2025年八針鏈?zhǔn)娇p紉機(jī)項(xiàng)目可行性研究報(bào)告
- 2025至2030年中國面粉機(jī)磨輥數(shù)據(jù)監(jiān)測研究報(bào)告
- 2025至2030年速溶乳化輕質(zhì)硅酸鈉項(xiàng)目投資價(jià)值分析報(bào)告
- 2025至2030年納豆激酶項(xiàng)目投資價(jià)值分析報(bào)告
- 詩詞寫作入門課件
- 2023年上海青浦區(qū)區(qū)管企業(yè)統(tǒng)一招考聘用筆試題庫含答案解析
- 植物之歌觀后感
- 空氣能熱泵安裝示意圖
- 建筑工程施工質(zhì)量驗(yàn)收規(guī)范檢驗(yàn)批填寫全套表格示范填寫與說明
- 2020年中秋國慶假日文化旅游市場安全生產(chǎn)檢查表
- 昆明天大礦業(yè)有限公司尋甸縣金源磷礦老廠箐-小凹子礦段(擬設(shè))采礦權(quán)出讓收益評(píng)估報(bào)告
- 心有榜樣行有力量 -從冬奧冠軍徐夢桃身上感受青春奮斗初中主題班會(huì)
- GB/T 3860-1995文獻(xiàn)敘詞標(biāo)引規(guī)則
- 七年級(jí)英語下冊閱讀理解10篇
- 設(shè)計(jì)質(zhì)量、進(jìn)度保證措施
評(píng)論
0/150
提交評(píng)論