對(duì)象類方法ppt課件_第1頁(yè)
對(duì)象類方法ppt課件_第2頁(yè)
對(duì)象類方法ppt課件_第3頁(yè)
對(duì)象類方法ppt課件_第4頁(yè)
對(duì)象類方法ppt課件_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Chapter 3面向?qū)ο蟮木幊碳夹g(shù)面向?qū)ο蟮木幊碳夹g(shù)長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院回想回想 循環(huán)語(yǔ)句循環(huán)語(yǔ)句while、do-while、for的區(qū)別是什么?的區(qū)別是什么? int i = 0, j = 0; while(i4) System.out.println(*); i+; continue; System.out.println(*); j+; i+; *寫出運(yùn)轉(zhuǎn)結(jié)果寫出運(yùn)轉(zhuǎn)結(jié)果輸出輸出回想回想 public class Test public static void main(String args) for(int i=0;i= 0i- -萬(wàn)物皆對(duì)象萬(wàn)物皆對(duì)象v 世界是由什么組成的?世界

2、是由什么組成的? 名勝名勝 人人 物品物品 動(dòng)物動(dòng)物 ,植物,植物 身邊的對(duì)象身邊的對(duì)象布蘭尼布蘭尼朱麗葉朱麗葉顧客顧客姓名:朱麗葉姓名:朱麗葉年齡:年齡:28體重:體重:52千克千克操作:操作:購(gòu)買商品購(gòu)買商品姓名:布蘭尼姓名:布蘭尼職銜:收銀員職銜:收銀員年齡:年齡:35體重:體重:60千克千克操作:操作:收款收款打印賬單打印賬單對(duì)象的特征對(duì)象的特征屬性屬性v 屬性屬性對(duì)象具有的各種特征對(duì)象具有的各種特征v 每個(gè)對(duì)象的每個(gè)屬性都擁有特定值每個(gè)對(duì)象的每個(gè)屬性都擁有特定值v 例如:布蘭尼和朱麗葉的體重不一樣例如:布蘭尼和朱麗葉的體重不一樣 60kg 布蘭尼布蘭尼屬性屬性 35歲歲收銀員布蘭收銀

3、員布蘭尼尼 對(duì)象的特征對(duì)象的特征方法方法v 方法方法對(duì)象執(zhí)行的操作對(duì)象執(zhí)行的操作 打單打單 收銀收銀 方法方法 刷卡刷卡 收銀員布蘭尼收銀員布蘭尼對(duì)象的屬性和方法對(duì)象的屬性和方法v 列出尼古拉斯凱奇駕駛的這輛法拉利F360 Spider的屬性和方法v 列出小狗對(duì)象的屬性和方法屬性:屬性: 品牌:法拉利品牌:法拉利 型號(hào):型號(hào):F360 Spider 顏色:黃色顏色:黃色 價(jià)錢:價(jià)錢:380萬(wàn)元萬(wàn)元方法:方法: 發(fā)動(dòng)發(fā)動(dòng) 停頓停頓 加速加速屬性:屬性: 顏色:白色顏色:白色方法:方法: 叫叫 跑跑 吃吃思索思索v 說(shuō)一說(shuō)教室里的對(duì)象v 描畫他們的屬性和方法 顏色:黑色顏色:黑色品牌:品牌:BEN

4、Q投影投影姓名:張三姓名:張三年齡:年齡:20學(xué)習(xí)學(xué)習(xí)類型:白熾類型:白熾燈燈開(kāi)開(kāi)關(guān)關(guān)變亮變亮變暗變暗材制材制: 木質(zhì)木質(zhì)支撐物品支撐物品封裝封裝v 對(duì)象同時(shí)具有屬性和方法兩項(xiàng)特性對(duì)象同時(shí)具有屬性和方法兩項(xiàng)特性v 對(duì)象的屬性和方法通常被封裝在一同,共同表達(dá)事物的特對(duì)象的屬性和方法通常被封裝在一同,共同表達(dá)事物的特性,性, 二者相輔相承,不能分割二者相輔相承,不能分割誰(shuí)看見(jiàn)過(guò)只需誰(shuí)看見(jiàn)過(guò)只需“完完好的零件和顏色好的零件和顏色而不能開(kāi)動(dòng)的汽車而不能開(kāi)動(dòng)的汽車?從對(duì)象籠統(tǒng)出從對(duì)象籠統(tǒng)出“類類抽取出以下對(duì)象的屬性和方法的共同特征抽取出以下對(duì)象的屬性和方法的共同特征 顧客顧客 類類顧客類顧客類轎車類轎車

5、類 類是模子,確定對(duì)象將會(huì)擁有的類是模子,確定對(duì)象將會(huì)擁有的特征屬性和行為方法特征屬性和行為方法 類是對(duì)象的類型類是對(duì)象的類型 不同于不同于int類型:具有方法類型:具有方法 各種口味的球狀冰淇淋各種口味的球狀冰淇淋 球狀冰淇淋模子球狀冰淇淋模子思索思索v 類和對(duì)象有什么區(qū)別呢?類和對(duì)象有什么區(qū)別呢?v 類是籠統(tǒng)的概念,僅僅是模板,比如說(shuō):類是籠統(tǒng)的概念,僅僅是模板,比如說(shuō):“人人v 對(duì)象是一個(gè)他可以看得到、摸得著的詳細(xì)實(shí)體,比如:對(duì)象是一個(gè)他可以看得到、摸得著的詳細(xì)實(shí)體,比如:“小布什小布什小布什小布什普京普京克林頓克林頓“人人”類類特征(屬性)特征(屬性)年齡年齡體重體重行為(方法)行為(

6、方法)衣衣食食住住行行Java 是面向?qū)ο蟮难哉Z(yǔ)是面向?qū)ο蟮难哉Z(yǔ) 一切一切Java程序都以類程序都以類class為組織單元為組織單元 關(guān)鍵字關(guān)鍵字class定義自定義的數(shù)據(jù)類型定義自定義的數(shù)據(jù)類型 public class Hello public static void main(String args) System.out.println(運(yùn)用運(yùn)用Java言語(yǔ)了解程序邏輯言語(yǔ)了解程序邏輯); Java類模板類模板v 類將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中類將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中public class 類名類名 /定義屬性部分定義屬性部分 屬性屬性1的類型的類型 屬性屬性1

7、; 屬性屬性2的類型的類型 屬性屬性2; 屬性屬性n的類型的類型 屬性屬性n; /定義方法部分定義方法部分 方法方法1; 方法方法2; 方法方法m;定義類定義類v定義一個(gè)類的步驟定義一個(gè)類的步驟v1、定義類名、定義類名v2、編寫類的屬性、編寫類的屬性v3、編寫類的方法、編寫類的方法類例如類例如2-1 長(zhǎng)沙民政職業(yè)技術(shù)學(xué)院設(shè)有民政系、社會(huì)任務(wù)系、經(jīng)濟(jì)貿(mào)易系、軟件學(xué)院等多個(gè)院系,用類的思想輸出各個(gè)院系的信息School類類屬性:屬性:院系全稱院系全稱教師人數(shù)教師人數(shù)學(xué)生人數(shù)學(xué)生人數(shù)方法:方法:展示信息展示信息類例如類例如2-2public class School /定義學(xué)院的屬性定義學(xué)院的屬性

8、String schoolName; / 院系稱號(hào)院系稱號(hào) int techNum; /教師人數(shù)教師人數(shù) int stuNum; /學(xué)生人數(shù)學(xué)生人數(shù) / 定義展現(xiàn)院系的方法定義展現(xiàn)院系的方法 public String toString() return “民政學(xué)院的民政學(xué)院的 +schoolName + “n + “擁有:擁有:+ techNum + “名教師名教師 + stuNum + “名學(xué)生名學(xué)生; 定義類的定義類的toString()方法,方法,用于輸出類相關(guān)的信息用于輸出類相關(guān)的信息 public String toString() return 字符串;字符串; /方法體方法體

9、成員變量成員變量常見(jiàn)錯(cuò)誤常見(jiàn)錯(cuò)誤public class .Book String bookName; String authorName; int pageNum; boolean isAvailable; 類命名規(guī)那么:類命名規(guī)那么:1、不能運(yùn)用、不能運(yùn)用Java關(guān)鍵字關(guān)鍵字2、首字母可以為字母,也可以是、首字母可以為字母,也可以是“_或或“$ (建議建議不要這樣不要這樣)3、不能包含空格或、不能包含空格或“.號(hào)號(hào)代碼錯(cuò)誤代碼錯(cuò)誤如何創(chuàng)建和運(yùn)用對(duì)象如何創(chuàng)建和運(yùn)用對(duì)象v 運(yùn)用對(duì)象的步驟:運(yùn)用對(duì)象的步驟:v 運(yùn)用運(yùn)用new創(chuàng)建類的一個(gè)對(duì)象創(chuàng)建類的一個(gè)對(duì)象v 運(yùn)用對(duì)象:運(yùn)用運(yùn)用對(duì)象:運(yùn)用“.進(jìn)展

10、以下操作進(jìn)展以下操作v 給類的屬性賦值:對(duì)象名給類的屬性賦值:對(duì)象名.屬性屬性v 調(diào)用類的方法:對(duì)象名調(diào)用類的方法:對(duì)象名.方法名方法名()School sc= new School();sc.schoolName = “軟件學(xué)院軟件學(xué)院; /給屬性賦值給屬性賦值sc.toString(); /調(diào)用類的方法,該方法中的操作將被執(zhí)調(diào)用類的方法,該方法中的操作將被執(zhí)行行public class InitialSchool public static void main(String args) School sc= new School(); System.out.println(sc); sc.

11、schoolName = “軟件學(xué)院軟件學(xué)院; sc.stuNum = 3000; sc.techNum = 100; System.out.println(sc); 創(chuàng)建和運(yùn)用對(duì)象例如創(chuàng)建和運(yùn)用對(duì)象例如創(chuàng)建創(chuàng)建“軟件學(xué)院對(duì)象軟件學(xué)院對(duì)象演示例如演示例如2:創(chuàng)建和運(yùn)用對(duì)象:創(chuàng)建和運(yùn)用對(duì)象說(shuō)一說(shuō)看說(shuō)一說(shuō)看到什么效到什么效果?果? 調(diào)用類的調(diào)用類的toString()方法是特方法是特例:這里運(yùn)用例:這里運(yùn)用center.toString()和和center作用作用一樣一樣更簡(jiǎn)便更簡(jiǎn)便綜合案例綜合案例v 編寫學(xué)生類,輸出學(xué)生相關(guān)信息編寫學(xué)生類,輸出學(xué)生相關(guān)信息v 編寫教員類,輸出教員相關(guān)信息編寫教員

12、類,輸出教員相關(guān)信息學(xué)生類學(xué)生類屬性:屬性:姓名姓名年齡年齡參加的課程參加的課程興趣興趣方法:方法:顯示學(xué)員個(gè)人信息顯示學(xué)員個(gè)人信息教員類教員類屬性:屬性:姓名姓名專業(yè)方向?qū)I(yè)方向教授的課程教授的課程教齡教齡方法:方法:顯示教員個(gè)人信息顯示教員個(gè)人信息 學(xué)生類參考代碼學(xué)生類參考代碼 教員類參考代碼教員類參考代碼 測(cè)試類參考代碼測(cè)試類參考代碼演示例如演示例如3:創(chuàng)建和運(yùn)用類和對(duì)象:創(chuàng)建和運(yùn)用類和對(duì)象練習(xí)練習(xí)v 編寫一個(gè)音樂(lè)類,并編寫測(cè)試類顯示音樂(lè)信息編寫一個(gè)音樂(lè)類,并編寫測(cè)試類顯示音樂(lè)信息v 編寫一個(gè)手機(jī)類,并編寫測(cè)試類顯示手機(jī)信息編寫一個(gè)手機(jī)類,并編寫測(cè)試類顯示手機(jī)信息 音樂(lè)類參考代碼音樂(lè)類參

13、考代碼 手機(jī)類參考代碼手機(jī)類參考代碼 測(cè)試類參考代碼測(cè)試類參考代碼 測(cè)試類參考代碼測(cè)試類參考代碼面向?qū)ο竺嫦驅(qū)ο驩O的優(yōu)點(diǎn)的優(yōu)點(diǎn)v 便于程序模擬現(xiàn)實(shí)世界中的實(shí)體便于程序模擬現(xiàn)實(shí)世界中的實(shí)體v 用用“類表示實(shí)體的特征和行為類表示實(shí)體的特征和行為v 隱藏細(xì)節(jié)隱藏細(xì)節(jié)v 對(duì)象的行為和屬性被封裝在類中,外界經(jīng)過(guò)調(diào)用類的方法對(duì)象的行為和屬性被封裝在類中,外界經(jīng)過(guò)調(diào)用類的方法來(lái)獲得,不需關(guān)注內(nèi)部細(xì)節(jié)如何實(shí)現(xiàn)來(lái)獲得,不需關(guān)注內(nèi)部細(xì)節(jié)如何實(shí)現(xiàn)v 可重用可重用v 可以經(jīng)過(guò)類的模板,創(chuàng)建多個(gè)類的對(duì)象可以經(jīng)過(guò)類的模板,創(chuàng)建多個(gè)類的對(duì)象數(shù)據(jù)類型總結(jié)數(shù)據(jù)類型總結(jié)intdoublechar String運(yùn)用運(yùn)用class

14、定義的類型定義的類型StudentTeacherSchool根本數(shù)據(jù)類型根本數(shù)據(jù)類型援用數(shù)據(jù)類型援用數(shù)據(jù)類型數(shù)據(jù)類型運(yùn)用區(qū)別數(shù)據(jù)類型運(yùn)用區(qū)別數(shù)據(jù)類型數(shù)據(jù)類型特征特征聲明聲明使用使用基本數(shù)據(jù)類型基本數(shù)據(jù)類型沒(méi)有方法沒(méi)有方法int i= 8;i+;引用數(shù)據(jù)類型引用數(shù)據(jù)類型具有方法具有方法Student stu = new Student();stu.age+;小結(jié)小結(jié) v 類和對(duì)象的區(qū)別是什么?類和對(duì)象的區(qū)別是什么?v 數(shù)據(jù)類型有哪兩類?如何運(yùn)用?數(shù)據(jù)類型有哪兩類?如何運(yùn)用?public class &Student String name; char sex; int age; publ

15、ic String tostring() return name + t + sex + t + age; public static void main(String args) Student stu = new Student(); name = 神仙姐姐神仙姐姐; sex = F; age = 18; System.out.println(stu); Student toSstu.sexstu.age 實(shí)現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯(cuò)誤?實(shí)現(xiàn)輸出學(xué)生信息,下面代碼有哪些錯(cuò)誤?類的方法類的方法v 寫出獅子對(duì)象的寫出獅子對(duì)象的“跑方法跑方法v 寫出獅子對(duì)象的寫出

16、獅子對(duì)象的“叫方法叫方法 電動(dòng)玩具獅子電動(dòng)玩具獅子屬性:屬性:顏色:黃色顏色:黃色行為:行為:跑跑叫叫按此按鈕,按此按鈕,獅子開(kāi)場(chǎng)跑獅子開(kāi)場(chǎng)跑類的方法例如類的方法例如public class AutoLion String color = 黃色黃色; public void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑秒的速度向前奔跑); public String bark() String sound = 吼吼 ; return sound; AutoLion類代碼實(shí)現(xiàn)類代碼實(shí)現(xiàn)方法稱號(hào)方法稱號(hào)方法體方法體前往類型前往類型如何定義類的方法如何定

17、義類的方法v類的方法定義類的某種行為或功能類的方法定義類的某種行為或功能 方法的定義方法的定義 方法的稱號(hào)方法的稱號(hào) 方法的主體方法的主體 方法前往的數(shù)據(jù)類型方法前往的數(shù)據(jù)類型 定義類的方法定義類的方法public 前往值類型前往值類型 方法名方法名() /這里編寫方法的主體這里編寫方法的主體步驟一:定義方步驟一:定義方法名以及前往值法名以及前往值步驟二:編寫方步驟二:編寫方法體法體方法的命名方法的命名v 如何給方法起名字?如何給方法起名字?v 必需以字母、必需以字母、_或或開(kāi)頭開(kāi)頭v 可以包括數(shù)字,但不能以它開(kāi)頭可以包括數(shù)字,但不能以它開(kāi)頭v 遵照的命名規(guī)范遵照的命名規(guī)范v 通常方法名是一個(gè)

18、動(dòng)詞,假設(shè)有兩個(gè)以上單詞組成,第一通常方法名是一個(gè)動(dòng)詞,假設(shè)有兩個(gè)以上單詞組成,第一個(gè)單詞的首字母小寫,其后單詞首字母大寫個(gè)單詞的首字母小寫,其后單詞首字母大寫方法的前往值方法的前往值v 兩種情況兩種情況v 假設(shè)方法具有前往值,方法中必需運(yùn)用關(guān)鍵字假設(shè)方法具有前往值,方法中必需運(yùn)用關(guān)鍵字return前前往該值,前往類型為該前往值的類型往該值,前往類型為該前往值的類型v 假設(shè)方法沒(méi)有前往值,前往類型為假設(shè)方法沒(méi)有前往值,前往類型為voidpublic class Student String name = 張三張三; public void getName() return name; 前往類型

19、要匹配前往類型要匹配return 表達(dá)式;表達(dá)式;編譯錯(cuò)誤編譯錯(cuò)誤常見(jiàn)錯(cuò)誤常見(jiàn)錯(cuò)誤2-1public class School public static void main(String args) return “軟件學(xué)院歡迎您!軟件學(xué)院歡迎您! ; 前往類型是前往類型是void方法中不能有前往值方法中不能有前往值 常見(jiàn)錯(cuò)誤常見(jiàn)錯(cuò)誤2-2public class Student public double getInfo() double weight = 95.5; double height = 1.69; return weight, height; 方法至多可以前往一個(gè)值,方法至多

20、可以前往一個(gè)值,不能前往多個(gè)值不能前往多個(gè)值方法調(diào)用方法調(diào)用v 方法是個(gè)方法是個(gè)“黑匣子,完成某個(gè)特定的運(yùn)用程序功能,并黑匣子,完成某個(gè)特定的運(yùn)用程序功能,并前往結(jié)果前往結(jié)果v 方法調(diào)用:執(zhí)行方法中包含的語(yǔ)句方法調(diào)用:執(zhí)行方法中包含的語(yǔ)句v 對(duì)象名對(duì)象名.方法名方法名;小明過(guò)生日,爸爸送他一個(gè)電動(dòng)獅子玩具,編程小明過(guò)生日,爸爸送他一個(gè)電動(dòng)獅子玩具,編程測(cè)試這個(gè)獅子能否正常任務(wù)測(cè)試這個(gè)獅子能否正常任務(wù) 演示例如演示例如1:演示運(yùn)轉(zhuǎn)效果:演示運(yùn)轉(zhuǎn)效果 方法調(diào)用方法調(diào)用 public class AutoLion String color = 黃色黃色; public void run() /方法方

21、法1:跑:跑 System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); public String bark() /方法方法2:叫:叫 String sound = 吼吼 ; return sound; public String getColor() /方法方法3:獲得顏色屬性:獲得顏色屬性 return color; public String showLion() /方法方法4:描畫獅子特性:描畫獅子特性 return 這是一個(gè)這是一個(gè) + getColor() + 的玩具獅子的玩具獅子! ; public class TestLion pu

22、blic static void main(String args) AutoLion lion = new AutoLion(); System.out.println(lion.showLion(); lion.run(); System.out.println(lion.bark(); 在類的方法中調(diào)用在類的方法中調(diào)用該類另一個(gè)方法該類另一個(gè)方法在在main()方法中方法中調(diào)用類的方法調(diào)用類的方法 演示例如演示例如2:設(shè)置斷點(diǎn)演示方法調(diào)用執(zhí)行過(guò)程:設(shè)置斷點(diǎn)演示方法調(diào)用執(zhí)行過(guò)程 方法調(diào)用小結(jié)方法調(diào)用小結(jié)v 方法之間允許相互調(diào)用,不需求知道方法的詳細(xì)實(shí)現(xiàn),提高了效率v 情況情況舉例舉例1、類

23、、類Student 的方法的方法a()調(diào)用調(diào)用Student類類的方法的方法b(),直接調(diào)用,直接調(diào)用public void a() b(); /調(diào)用調(diào)用b() 2、類、類Student的方法的方法a()調(diào)用類調(diào)用類Teacher的方法的方法b(),先創(chuàng)建類對(duì)象,然后使用,先創(chuàng)建類對(duì)象,然后使用“.”調(diào)用調(diào)用public void a() Teacher t = new Teacher(); t.b(); /調(diào)用調(diào)用Teacher類的類的b() 變量作用域變量作用域3-1public class AutoLion String color = 黃色黃色; public void run() /

24、方法方法1:跑:跑 System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); public String bark() /方法方法2:叫:叫 String sound = 吼吼 ; return sound; public String getColor() /方法方法3:獲得顏色屬性:獲得顏色屬性 return color ; public String showLion() /方法方法4:輸出類的描畫信息:輸出類的描畫信息 return 這是一個(gè)這是一個(gè) + getColor() + 的玩具獅子的玩具獅子!叫聲是叫聲是 + sound ; 可以

25、調(diào)用嗎?可以調(diào)用嗎? 演示例如演示例如3 3:變量作用域:變量作用域 變量作用域變量作用域3-2v 變量聲明的位置決議變量作用域變量聲明的位置決議變量作用域v 變量作用域確定可在程序中按變量名訪問(wèn)該變量的區(qū)域變量作用域確定可在程序中按變量名訪問(wèn)該變量的區(qū)域for(int i = 0, a = 0; i 4; i+) a+;System.out.println(a);a的作用域僅在的作用域僅在for循環(huán)中循環(huán)中 代碼錯(cuò)誤代碼錯(cuò)誤變量作用域變量作用域3-3變量變量1類型類型 變量變量1; 變量變量2類型類型 變量變量2;變量變量3類型類型 變量變量3;public 前往類型前往類型 方法方法1()

26、 變量變量4類型類型 變量變量4;public 前往類型前往類型 方法方法2() 變量變量5類型類型 變量變量5; public class AutoLion AutoLion類的方法類的方法別的類的方法別的類的方法 誰(shuí)能運(yùn)用這些變量?誰(shuí)能運(yùn)用這些變量? 方法方法1 方法方法2 成員變量成員變量 部分變量部分變量 部分變量部分變量 練習(xí)練習(xí) 編寫手機(jī)類Phone:它可以下載音樂(lè),可以播放這些音樂(lè),可以進(jìn)展充電 編寫電池類Cell:自動(dòng)續(xù)電 編寫測(cè)試類Test手機(jī)類手機(jī)類行為:行為:播放下載的音樂(lè)播放下載的音樂(lè)下載下載充電充電電池類電池類屬性:屬性:品牌品牌行為:行為:續(xù)電續(xù)電手機(jī)類手機(jī)類電池類

27、電池類測(cè)試類測(cè)試類 演示例如演示例如5:演示效果:演示效果 帶參數(shù)的方法就在身邊帶參數(shù)的方法就在身邊public String concat (String str) public int indexOf (String value)public String substring (int index) 方法實(shí)施時(shí)需求接納某個(gè)值進(jìn)展處置方法實(shí)施時(shí)需求接納某個(gè)值進(jìn)展處置 前往值類型前往值類型 方法名方法名 參數(shù)參數(shù)為什么要用帶參數(shù)的方法為什么要用帶參數(shù)的方法v 任務(wù)原理任務(wù)原理新穎桃汁新穎桃汁新穎蘋果汁新穎蘋果汁新穎梨汁新穎梨汁輸輸出出三三種種果果汁汁如何運(yùn)用帶參數(shù)的方法如何運(yùn)用帶參數(shù)的方法v

28、定義帶參數(shù)的方法定義帶參數(shù)的方法v 調(diào)用帶參數(shù)的方法調(diào)用帶參數(shù)的方法public class Zhazhi /定義帶參數(shù)的定義帶參數(shù)的zhazhi方法方法 public String zhazhi ( String fruit ) String juice = fruit + 汁汁; return juice; /*調(diào)用調(diào)用zhazhi方法方法*/Zhazhi myZhazhi = new Zhazhi();String myFruit = 蘋果蘋果;String myJuice = myZhazhi.zhazhi(myFruit);System.out.println(myJuice);參數(shù)

29、列表:參數(shù)列表:(數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)1,數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)2)調(diào)用方法,傳送的參數(shù)要調(diào)用方法,傳送的參數(shù)要與參數(shù)列表一一對(duì)應(yīng)與參數(shù)列表一一對(duì)應(yīng)完好代碼演示完好代碼演示完好代碼演示完好代碼演示演示例如演示例如6 6:演示運(yùn)轉(zhuǎn)效果:演示運(yùn)轉(zhuǎn)效果帶參數(shù)的方法運(yùn)用帶參數(shù)的方法運(yùn)用2-1輸入學(xué)期代碼,輸出該學(xué)期的課程信息輸入學(xué)期代碼,輸出該學(xué)期的課程信息if (courseCode.equalsIgnoreCase(s1) System.out.println(第一學(xué)期的課程是:第一學(xué)期的課程是:); for(int i = 0; i s1Course.length; i+) Syste

30、m.out.println(s1Coursei); else if (courseCode.equalsIgnoreCase(s2) System.out.println(第二學(xué)期的課程是:第二學(xué)期的課程是:); for(int i = 0; i s2Course.length; i+) System.out.println(s2Coursei); else if (courseCode.equalsIgnoreCase(y2) System.out.println(第三學(xué)期的課程是:第三學(xué)期的課程是:); for(int i = 0; i y2Course.length; i+) Syste

31、m.out.println(y2Coursei); 反復(fù)代碼:反復(fù)代碼:實(shí)現(xiàn)一樣的功實(shí)現(xiàn)一樣的功能能“根據(jù)不同的根據(jù)不同的課程代號(hào)輸出課程代號(hào)輸出相應(yīng)課程信息相應(yīng)課程信息運(yùn)用方法可以運(yùn)用方法可以添加代碼重用添加代碼重用完好代碼演示完好代碼演示帶參數(shù)的方法運(yùn)用帶參數(shù)的方法運(yùn)用2-2更高效的代碼更高效的代碼public class School public void courseInfo(int courseCode, String course) System.out.println(courseCode + 的課程是:的課程是:); for(int i = 0; i 0; x-)z *= x

32、;/ 該循環(huán)求該循環(huán)求3的階乘的階乘System.out.println(3!= + z);/ 輸出輸出3的階乘的階乘for (x = 6, z = 1; x 0; x-)/ 該循環(huán)求該循環(huán)求6的階乘的階乘z *= x;System.out.println(6!= + z);/ 輸出輸出6的階乘的階乘for (x = 9, z = 1; x 0; x-)/ 該循環(huán)求該循環(huán)求9的階乘的階乘z *= x;System.out.println(9!= + z);/ 輸出輸出9的階乘的階乘 v 運(yùn)用方法計(jì)算運(yùn)用方法計(jì)算3、6和和9的階乘并輸出結(jié)果的階乘并輸出結(jié)果public class TestFun

33、ction2/第一個(gè)方法是第一個(gè)方法是main方法,它方法,它3次調(diào)用了第二個(gè)方法次調(diào)用了第二個(gè)方法public static void main(String args) factorial(3);factorial(6);factorial(9);/第二個(gè)方法是第二個(gè)方法是factorial方法,它求出參數(shù)方法,它求出參數(shù)n的階乘并輸出的階乘并輸出static void factorial(int n) long z=1L;int x=n;for( ;x0;x-)/該循環(huán)求該循環(huán)求n的階乘的階乘z*=x;System.out.println(n+!=+z);/輸出輸出n的階乘的階乘stat

34、ic void aMathod() /無(wú)參數(shù)的方法無(wú)參數(shù)的方法static void bMathod(int n) /有一個(gè)參數(shù)的方法有一個(gè)參數(shù)的方法static void cMathod(int n,int m,long k) /有多個(gè)參數(shù)的方法有多個(gè)參數(shù)的方法方法類型:方法類型: 方法名后小括號(hào)內(nèi)的參數(shù)指明了方法接納的外部輸入。方法名后小括號(hào)內(nèi)的參數(shù)指明了方法接納的外部輸入。假設(shè)一個(gè)方法不需求接納外部的輸入,那么參數(shù)為空,但方假設(shè)一個(gè)方法不需求接納外部的輸入,那么參數(shù)為空,但方法名后的小括號(hào)必需有,它是方法的標(biāo)志。假設(shè)一個(gè)方法需法名后的小括號(hào)必需有,它是方法的標(biāo)志。假設(shè)一個(gè)方法需求接納多個(gè)

35、外部的輸入,那么構(gòu)成參數(shù)列表,各個(gè)參數(shù)之間求接納多個(gè)外部的輸入,那么構(gòu)成參數(shù)列表,各個(gè)參數(shù)之間運(yùn)用逗號(hào)分割。例如:運(yùn)用逗號(hào)分割。例如:static void Mathod1() /無(wú)前往值的方法無(wú)前往值的方法static boolean Mathod2() /前往布爾值的方法前往布爾值的方法static int Mathod3() /前往整型值的方法前往整型值的方法方法類型:方法類型: 方法的前往值類型可以是根本數(shù)據(jù)類型也可以是對(duì)象,假方法的前往值類型可以是根本數(shù)據(jù)類型也可以是對(duì)象,假設(shè)沒(méi)有前往值,就用設(shè)沒(méi)有前往值,就用void來(lái)描畫。例如,來(lái)描畫。例如,main方法就沒(méi)有前往方法就沒(méi)有前往值

36、,而且必需沒(méi)有前往值。又如值,而且必需沒(méi)有前往值。又如 假設(shè)一個(gè)方法被定義成假設(shè)一個(gè)方法被定義成void類型,在方法中不需求類型,在方法中不需求return語(yǔ)句;否那么,由語(yǔ)句;否那么,由return語(yǔ)句所前往的值或表達(dá)式,必需與方語(yǔ)句所前往的值或表達(dá)式,必需與方法的前往值同屬于一個(gè)類型。法的前往值同屬于一個(gè)類型。v 運(yùn)用方法前往值實(shí)現(xiàn)的階乘運(yùn)用方法前往值實(shí)現(xiàn)的階乘public class TestFunctionRetupublic static void main(String args) long result = 0;result = factorial(3); / 調(diào)用方法并獲得前往

37、值調(diào)用方法并獲得前往值System.out.println(3!= + result);result = factorial(6); / 調(diào)用方法并獲得前往值調(diào)用方法并獲得前往值System.out.println(6!= + result);result = factorial(9); / 調(diào)用方法并獲得前往值調(diào)用方法并獲得前往值System.out.println(9!= + result);static long factorial(int n) long z = 1L;int x = n;for (; x 0; x-)/ 計(jì)算階乘計(jì)算階乘z *= x;return z; / 前往階乘值

38、前往階乘值與前面的實(shí)現(xiàn)對(duì)比與前面的實(shí)現(xiàn)對(duì)比看有什么差別看有什么差別方法調(diào)用案例方法調(diào)用案例 編寫成果計(jì)算類ScoreCalc 編寫測(cè)試類成績(jī)計(jì)算類成績(jī)計(jì)算類屬性:屬性:3門成績(jī)門成績(jī)(Java、C#、DB)方法:方法:計(jì)算平均成績(jī)計(jì)算平均成績(jī)顯示平均成績(jī)顯示平均成績(jī)計(jì)算總成績(jī)計(jì)算總成績(jī)顯示總成績(jī)顯示總成績(jī)成果計(jì)算類成果計(jì)算類測(cè)試類測(cè)試類 演示例如:方法調(diào)用演示例如:方法調(diào)用 面向?qū)ο蟮木幊趟枷朊嫦驅(qū)ο蟮木幊趟枷雟 ScoreCalc類類 和和 Test類類public static void main(String args) Scanner input = new Scanner(Syste

39、m.in); System.out.print(請(qǐng)輸入請(qǐng)輸入Java成果:成果:); int java = input.nextInt(); /*計(jì)算并顯示輸出計(jì)算并顯示輸出*/ int total = java + c + db; double avg = total / 3; System.out.print(總成果:總成果: + total); System.out.print(n平均分平均分: + avg);一次還可以接受,假設(shè)一次還可以接受,假設(shè)還要再執(zhí)行這個(gè)功能,還要再執(zhí)行這個(gè)功能,難道還要反復(fù)再寫?難道還要反復(fù)再寫?calcDiffTimecalcTotalScore()Scor

40、eCalcshowTotalScore()calcAvg()showAvg() main() /程序入口程序入口 /計(jì)算并輸出總成果計(jì)算并輸出總成果 /計(jì)算并輸出平均分計(jì)算并輸出平均分 Test調(diào)用調(diào)用調(diào)用調(diào)用類的方法實(shí)現(xiàn)某個(gè)特定的功能,類的方法實(shí)現(xiàn)某個(gè)特定的功能,別的類不需求知道它如何實(shí)現(xiàn)!別的類不需求知道它如何實(shí)現(xiàn)!知道了實(shí)現(xiàn)此功能的類和它的方法名,知道了實(shí)現(xiàn)此功能的類和它的方法名, 就可以直接調(diào)用了,不用反復(fù)寫代碼!就可以直接調(diào)用了,不用反復(fù)寫代碼! 方法中的參數(shù)方法中的參數(shù) v參數(shù)傳送參數(shù)傳送v在在Java言語(yǔ)中,向方法傳送參數(shù)的言語(yǔ)中,向方法傳送參數(shù)的方式之一是方式之一是“按值傳送。

41、按值傳送意味按值傳送。按值傳送意味著當(dāng)將一個(gè)參數(shù)傳送給一個(gè)方法時(shí),首先著當(dāng)將一個(gè)參數(shù)傳送給一個(gè)方法時(shí),首先創(chuàng)建了源參數(shù)的一個(gè)副本并將這個(gè)副本傳創(chuàng)建了源參數(shù)的一個(gè)副本并將這個(gè)副本傳入了方法,這樣方法接納的是原始值的一入了方法,這樣方法接納的是原始值的一個(gè)副本。個(gè)副本。 演示例如:變量賦值演示例如:變量賦值 public class TestPara static void test(boolean paratest) paratest = !paratest; System.out.println(In test (boolean) : test = + paratest); public st

42、atic void main(String args) boolean test = true; System.out.println(Before test (boolean) : test = + test); test(test); System.out.println(After test (boolean) : test = + test); 程序運(yùn)轉(zhuǎn)結(jié)果:程序運(yùn)轉(zhuǎn)結(jié)果:Before test(boolean) : test = trueIn test(boolean) : test = falseAfter test(boolean) : test = true由于方法接納的是一個(gè)

43、副本,所以即使在方法中修正了該參由于方法接納的是一個(gè)副本,所以即使在方法中修正了該參數(shù),那僅僅是改動(dòng)副本,而源參數(shù)值堅(jiān)持不變。數(shù),那僅僅是改動(dòng)副本,而源參數(shù)值堅(jiān)持不變。參數(shù)傳送參數(shù)傳送對(duì)象作為方法的參數(shù)對(duì)象作為方法的參數(shù) 當(dāng)運(yùn)用對(duì)象實(shí)例作為參數(shù)傳送給方法時(shí),當(dāng)運(yùn)用對(duì)象實(shí)例作為參數(shù)傳送給方法時(shí),參數(shù)的值是對(duì)對(duì)象的援用。也就是說(shuō),傳送參數(shù)的值是對(duì)對(duì)象的援用。也就是說(shuō),傳送給到方法內(nèi)部的是對(duì)象的援用值而不是對(duì)象給到方法內(nèi)部的是對(duì)象的援用值而不是對(duì)象的內(nèi)容。的內(nèi)容。在方法內(nèi)這個(gè)援用值不會(huì)被改動(dòng)。但假設(shè)在方法內(nèi)這個(gè)援用值不會(huì)被改動(dòng)。但假設(shè)經(jīng)過(guò)該援用值修正了所指向的對(duì)象的內(nèi)容,經(jīng)過(guò)該援用值修正了所指向的對(duì)

44、象的內(nèi)容,那么方法終了后,所修正的對(duì)象內(nèi)容可以保那么方法終了后,所修正的對(duì)象內(nèi)容可以保管下來(lái)。管下來(lái)。 對(duì)象傳參例如對(duì)象傳參例如class DemoTeacherpublic void print(Teacher1 t)System.out.println(姓名姓名:++ 年齡年齡:+t.age);public class Teacher1public String name; / 教師姓名教師姓名public int age;/年齡年齡 public Teacher1(String name, int age) = name; this.age = age;

45、public static void main(String args)Teacher1 t1 = new Teacher1(鳳姐鳳姐,25);DemoTeacher dt = new DemoTeacher();dt.print(t1);程序運(yùn)轉(zhuǎn)結(jié)果:程序運(yùn)轉(zhuǎn)結(jié)果:姓名姓名:鳳姐鳳姐 年齡年齡:25例如例如class TestObject private String name;public void setName(String pname) name = pname;public String getName() return name;假設(shè)以對(duì)象做入?yún)?,其值?huì)不會(huì)發(fā)生變化呢?假設(shè)以對(duì)象

46、做入?yún)?,其值?huì)不會(huì)發(fā)生變化呢?public class Testit private void modify(TestObject a, TestObject b) a.setName(xyz);b.setName(uvw);System.out.println(in test.);System.out.println(a.getName()= + a.getName();System.out.println(b.getName()= + b.getName();public static void main(String args) TestObject ta = new TestObjec

47、t();TestObject tb = new TestObject();Testit tc = new Testit();ta.setName(abc);tb.setName(def);System.out.println(before test.);System.out.println(ta.getName()= + ta.getName();System.out.println(tb.getName()= + tb.getName();tc.modify(ta, tb);System.out.println(after test.);System.out.println(ta.getNa

48、me()= + ta.getName();System.out.println(tb.getName()= + tb.getName();運(yùn)轉(zhuǎn)結(jié)果:運(yùn)轉(zhuǎn)結(jié)果:before test.ta.getName()=abctb.getName()=defin test.ta.getName()=xyztb.getName()=uvwafter test.ta.getName()=xyztb.getName()=uvw向向modify傳送了傳送了ta、tb兩個(gè)對(duì)象的援用,使兩個(gè)對(duì)象的援用,使方法內(nèi)的兩個(gè)對(duì)象與傳入方法內(nèi)的兩個(gè)對(duì)象與傳入方法的對(duì)象援用一樣都分方法的對(duì)象援用一樣都分別指向源參數(shù)別指向源參數(shù)t

49、a、tb兩個(gè)對(duì)兩個(gè)對(duì)象,即我們可以經(jīng)過(guò)這兩象,即我們可以經(jīng)過(guò)這兩個(gè)對(duì)象來(lái)操作源參數(shù)。個(gè)對(duì)象來(lái)操作源參數(shù)。例如例如class Integerint i;Integer(int i) this.i = i;public String toString()return +i;結(jié)論:只需修正了入?yún)?duì)象,其源對(duì)象都會(huì)相應(yīng)變化?結(jié)論:只需修正了入?yún)?duì)象,其源對(duì)象都會(huì)相應(yīng)變化?例如例如public class Swap public static void main(String args) Integer a, b; a = new Integer(10); b = new Integer(50); Sy

50、stem.out.println(before swap.); System.out.println(a is + a); System.out.println(b is + b); swap(a, b); System.out.println(after swap.); System.out.println(a is + a); System.out.println(b is + b); public static void swap(Integer pa, Integer pb) Integer temp = pa; pa = pb; pb = temp; System.out.println(in swap.); System.out.println(a is + pa);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論