第章類和對象ppt課件_第1頁
第章類和對象ppt課件_第2頁
第章類和對象ppt課件_第3頁
第章類和對象ppt課件_第4頁
第章類和對象ppt課件_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、本章目的本章目的掌握類和對象的特征掌握類和對象的特征 會創(chuàng)建和運用對象會創(chuàng)建和運用對象會定義和運用類的方法會定義和運用類的方法了解變量作用域了解變量作用域會運用帶參方法會運用帶參方法會運用數(shù)組作為方法的參數(shù)和前往值會運用數(shù)組作為方法的參數(shù)和前往值會運用對象作為方法的參數(shù)會運用對象作為方法的參數(shù)掌握構(gòu)造方法及其重載掌握構(gòu)造方法及其重載掌握封裝的概念及其運用掌握封裝的概念及其運用會創(chuàng)建包組織會創(chuàng)建包組織Java工程工程會添加會添加JavaDoc注釋注釋現(xiàn)實世界是由什么組成的?現(xiàn)實世界是由什么組成的? 世界由對象組成世界由對象組成 萬物皆對象萬物皆對象身邊的對象身邊的對象張浩張浩李明李明收銀員收銀員

2、 員工號員工號10001 姓名姓名李明李明 部門部門財務(wù)部財務(wù)部 操作:操作: 收款收款 打印賬單打印賬單顧客顧客姓名姓名張浩張浩年齡年齡20體重體重60kg 操作:操作: 購買商品購買商品對象的特征對象的特征屬性屬性v屬性屬性對象具有的各種特征對象具有的各種特征v每個對象的每個屬性都擁有特定值每個對象的每個屬性都擁有特定值v例如:張浩和李明的年齡、姓名不一樣例如:張浩和李明的年齡、姓名不一樣 20歲歲 張浩張浩屬性屬性 60kg顧客張浩顧客張浩 對象的特征對象的特征方法方法v方法方法對象執(zhí)行的操作對象執(zhí)行的操作v對象:用來描畫客觀事物的一個實體,由一組屬對象:用來描畫客觀事物的一個實體,由一

3、組屬性和方法構(gòu)成性和方法構(gòu)成 打印賬單打印賬單 收銀收銀 方法方法 刷卡刷卡 收銀員李明收銀員李明v說一說教室里的對象,描畫他們的屬性和方法 顏色:黑色顏色:黑色品牌:品牌:BENQ投影投影姓名:張三姓名:張三年齡:年齡:20學習學習類型:白熾類型:白熾燈燈開開關(guān)關(guān)變亮變亮變暗變暗材制材制: 木質(zhì)木質(zhì)支撐物品支撐物品對象的屬性和方法對象的屬性和方法萬物皆對象萬物皆對象 名勝名勝 人人 物品物品 動物動物 ,植物,植物 分類是人們認識世界的一個很自然的過程,在分類是人們認識世界的一個很自然的過程,在日常生活中會不自覺地進展分類日常生活中會不自覺地進展分類從對象籠統(tǒng)出從對象籠統(tǒng)出“類類 顧客顧客

4、v抽取出以下對象的屬性和方法的共同特征抽取出以下對象的屬性和方法的共同特征類類顧客類轎車類 類是模子,確定對象將會擁有的類是模子,確定對象將會擁有的特征屬性和行為方法特征屬性和行為方法類類具有一樣屬性和方法的一組對象的集合具有一樣屬性和方法的一組對象的集合 類和對象的關(guān)系類和對象的關(guān)系v類是籠統(tǒng)的概念,僅僅是模板,比如說:類是籠統(tǒng)的概念,僅僅是模板,比如說:“人人v對象是一個他可以看得到、摸得著的詳細實體對象是一個他可以看得到、摸得著的詳細實體奧巴馬奧巴馬普京普京薩科奇薩科奇“人人”類類特征(屬性)特征(屬性)年齡年齡體重體重行為(方法)行為(方法)衣衣食食住住行行Java 是面向?qū)ο蟮难哉Z是

5、面向?qū)ο蟮难哉Z 一切一切Java程序都以類程序都以類class為組織單元為組織單元關(guān)鍵字關(guān)鍵字class定義自定義的數(shù)據(jù)類型定義自定義的數(shù)據(jù)類型 public class HelloWorld public static void main(String args)System.out.println(Hello World!);Java類模板類模板類將現(xiàn)實世界中的概念模擬到計算機程序中類將現(xiàn)實世界中的概念模擬到計算機程序中public class 類名類名 /定義屬性部分定義屬性部分 屬性屬性1的類型的類型 屬性屬性1; 屬性屬性2的類型的類型 屬性屬性2; 屬性屬性n的類型的類型 屬性屬性

6、n; /定義方法部分定義方法部分 方法方法1; 方法方法2; 方法方法m;如何定義類如何定義類v定義一個類的步驟定義一個類的步驟v1、定義類名、定義類名v2、編寫類的屬性、編寫類的屬性v3、編寫類的方法、編寫類的方法定義類定義類 編寫學生類,輸出學生相關(guān)信息編寫學生類,輸出學生相關(guān)信息學生類學生類姓名姓名年齡年齡班級班級愛好愛好顯示學員個人信息顯示學員個人信息public class Student String name;/姓名姓名int age;/年齡年齡String classNo; /班級班級String hobby;/喜好喜好/輸出信息方法輸出信息方法public void show

7、()System.out.println(name + n年齡:年齡: + age + n就讀于:就讀于: +classNo + n喜好:喜好: + hobby);成員變量成員變量成員方法成員方法定義類定義類如何創(chuàng)建和運用對象如何創(chuàng)建和運用對象v運用對象的步驟:運用對象的步驟:v創(chuàng)建對象創(chuàng)建對象v類名類名 對象名對象名 = new 類名類名();v援用對象成員:運用援用對象成員:運用“.進展以下操作進展以下操作v援用類的屬性:對象名援用類的屬性:對象名.屬性屬性v援用類的方法:對象名援用類的方法:對象名.方法名方法名()Student student = new Student();stude

8、 = 張浩張浩; /給給name屬性賦值屬性賦值student.show(); /調(diào)用調(diào)用show()方法方法創(chuàng)建和運用對象創(chuàng)建和運用對象public class InitialStudent public static void main(String args)Student student = new Student(); = 張浩張浩;student.age = 10;student.classNo = S1班班;student.hobby = 籃球籃球;student.show(); 創(chuàng)建對象創(chuàng)建對象給每個屬性賦值給每個屬性賦值調(diào)用方法調(diào)用方法創(chuàng)

9、建創(chuàng)建“張浩對象張浩對象練習練習定義教師類定義教師類 編寫教員類,輸出教員相關(guān)信息編寫教員類,輸出教員相關(guān)信息 教師類教師類姓名姓名專業(yè)方向?qū)I(yè)方向教授課程教授課程教齡教齡顯示教師個人信息顯示教師個人信息作業(yè)作業(yè)管理員類管理員類需求闡明:需求闡明:編寫管理員類編寫管理員類屬性:姓名、密碼屬性:姓名、密碼方法:方法:show(),顯示管理員信息,顯示管理員信息創(chuàng)建兩個管理員對象,給兩個對象賦值并調(diào)創(chuàng)建兩個管理員對象,給兩個對象賦值并調(diào)用方法輸出他們的相關(guān)信息用方法輸出他們的相關(guān)信息作業(yè)作業(yè)計算器計算器v需求闡明:需求闡明:v用面向?qū)ο蟮乃枷刖帉懸粋€計算器類,實現(xiàn)用面向?qū)ο蟮乃枷刖帉懸粋€計算器類,

10、實現(xiàn)兩個整數(shù)的加、減、乘、除運算。兩個整數(shù)的加、減、乘、除運算。v實現(xiàn)思緒:實現(xiàn)思緒:v1、創(chuàng)建類、創(chuàng)建類 Calculatorv(1) 定義成員變量運算數(shù)定義成員變量運算數(shù)1(num1)和運算數(shù)和運算數(shù)2(num2)v(2) 實施成員方法實施成員方法“加加(add)、“減減(minus)、“乘乘(multiple)、“除除(divide)v2、編寫測試類、編寫測試類TestCalc進展驗證進展驗證作業(yè)作業(yè)計算各種外形的面積計算各種外形的面積需求闡明:需求闡明:根據(jù)用戶的選擇計算矩形、圓形或三角形的面積根據(jù)用戶的選擇計算矩形、圓形或三角形的面積利用面向?qū)ο蟮木幊趟枷肜妹嫦驅(qū)ο蟮木幊趟枷朊嫦驅(qū)?/p>

11、象的編程思想面向?qū)ο蟮木幊趟枷刖幊堂璁嬓」芬惶斓纳罹幊堂璁嬓」芬惶斓纳蠲嫦蜻^程的編程思緒:面向過程的編程思緒: 起床起床-吃早飯吃早飯-玩皮球玩皮球-午飯午飯-睡覺睡覺-和主人遛和主人遛 彎彎-晚飯晚飯-和主人看電視和主人看電視-睡覺睡覺面向?qū)ο蟮木幊趟季w面向?qū)ο蟮木幊趟季w 首先分析義務(wù)中涉及哪些類:小狗類。然首先分析義務(wù)中涉及哪些類:小狗類。然后分析小狗類的行為:起床、吃飯、玩耍、后分析小狗類的行為:起床、吃飯、玩耍、遛彎、看電視、睡覺。然后創(chuàng)建詳細的小狗遛彎、看電視、睡覺。然后創(chuàng)建詳細的小狗對象。最后根據(jù)小狗一天的生活安排調(diào)用相對象。最后根據(jù)小狗一天的生活安排調(diào)用相應方法。應方法。面向

12、對象的編程思想面向?qū)ο蟮木幊趟枷雟 舉行一臺晚會舉行一臺晚會v 面向過程的編程思緒:面向過程的編程思緒:v 全體人員大合唱全體人員大合唱-主持人宣布晚會開場主持人宣布晚會開場-指指點致辭點致辭-主持主持v 人過場人過場-第一個節(jié)目第一個節(jié)目-主持人過場主持人過場-第二個第二個節(jié)目節(jié)目-v 最后一個節(jié)目最后一個節(jié)目-主持人宣布晚會終了主持人宣布晚會終了v 面向?qū)ο蟮木幊趟季w面向?qū)ο蟮木幊趟季wv 首先分析晚會需求哪些類:指點、主持人和演員。首先分析晚會需求哪些類:指點、主持人和演員。然后分析各種類的行為:主持人有宣布晚會開場、然后分析各種類的行為:主持人有宣布晚會開場、過場、宣布晚會終了、大合唱。

13、指點有講話、大合過場、宣布晚會終了、大合唱。指點有講話、大合唱。演員主要就是扮演節(jié)目、大合唱。然后利用設(shè)唱。演員主要就是扮演節(jié)目、大合唱。然后利用設(shè)計好的類創(chuàng)建對應對象,調(diào)用相應的方法來逐漸進計好的類創(chuàng)建對應對象,調(diào)用相應的方法來逐漸進展晚會。展晚會。面向?qū)ο竺嫦驅(qū)ο驩O的優(yōu)點的優(yōu)點v與人類的思想習慣一致與人類的思想習慣一致v把人類處理問題的思想過程轉(zhuǎn)變?yōu)槌绦蚩梢粤私獾陌讶祟愄幚韱栴}的思想過程轉(zhuǎn)變?yōu)槌绦蚩梢粤私獾倪^程過程 v信息隱藏,提高了程序的可維護性和平安性信息隱藏,提高了程序的可維護性和平安性 v封裝實現(xiàn)了模塊化和信息隱藏封裝實現(xiàn)了模塊化和信息隱藏 v封裝使得在對象外部不能隨意訪問對象的

14、屬性和方封裝使得在對象外部不能隨意訪問對象的屬性和方法法v提高了程序的可重用性提高了程序的可重用性v一個類可以創(chuàng)建多個對象實例,添加了重用性一個類可以創(chuàng)建多個對象實例,添加了重用性 如何定義類的方法如何定義類的方法類的方法定義類的某種行為或功能類的方法定義類的某種行為或功能 方法的定義方法的定義 方法的稱號方法的稱號 方法的主體方法的主體 方法前往的數(shù)據(jù)類型方法前往的數(shù)據(jù)類型 定義類的方法定義類的方法public 前往值類型前往值類型 方法名方法名() /這里編寫方法的主體這里編寫方法的主體步驟一:定義方步驟一:定義方法名以及前往值法名以及前往值步驟二:編寫方步驟二:編寫方法體法體方法的前往值

15、方法的前往值兩種情況兩種情況假設(shè)方法具有前往值,方法中必需運用關(guān)鍵字假設(shè)方法具有前往值,方法中必需運用關(guān)鍵字return前往該值,前往類型為該前往值的類型前往該值,前往類型為該前往值的類型假設(shè)方法沒有前往值,前往類型為假設(shè)方法沒有前往值,前往類型為voidpublic class Student String name = 張三張三; public void getName() return name; 前往類型要匹配前往類型要匹配return 表達式;表達式;編譯錯誤編譯錯誤作用:作用: 跳出方法跳出方法給出結(jié)果給出結(jié)果方法調(diào)用方法調(diào)用v方法是個方法是個“黑匣子,完成某個特定的運用程序功黑匣

16、子,完成某個特定的運用程序功能,并前往結(jié)果能,并前往結(jié)果v方法調(diào)用:執(zhí)行方法中包含的語句方法調(diào)用:執(zhí)行方法中包含的語句v 對象名對象名.方法名方法名();方法調(diào)用方法調(diào)用v小明過生日,爸爸送他一個電動獅子玩具,小明過生日,爸爸送他一個電動獅子玩具,編程測試這個獅子能否正常任務(wù)編程測試這個獅子能否正常任務(wù)電動玩具獅子電動玩具獅子屬性:屬性:顏色:黃色顏色:黃色行為:行為:跑跑叫叫按此按鈕,按此按鈕,獅子開場叫獅子開場叫按此按鈕,按此按鈕,獅子開場跑獅子開場跑方法調(diào)用方法調(diào)用public class AutoLion String color = 黃色黃色; /顏色顏色 /*跑跑*/ public

17、 void run() System.out.println(正在以正在以0.1米米/秒的速度向前奔跑。秒的速度向前奔跑。); /*叫叫*/ public String bark() String sound = 大聲吼叫大聲吼叫 ; return sound; /*獲得顏色獲得顏色*/ public String getColor() return color; /*顯示獅子特性顯示獅子特性*/ public String showLion() return 這是一個這是一個 + getColor() + 的玩具獅子的玩具獅子!; public class TestLion public s

18、tatic void main(String args) AutoLion lion = new AutoLion(); System.out.println(lion.showLion(); lion.run(); System.out.println(lion.bark(); 在類的方法中調(diào)用在類的方法中調(diào)用該類另一個方法該類另一個方法在在main()方法中方法中調(diào)用類的方法調(diào)用類的方法 方法調(diào)用小結(jié)方法調(diào)用小結(jié)v方法之間允許相互調(diào)用,不需求知道方法的詳細實現(xiàn),提高了效率 情情 況況 舉舉 例例Student類的方法類的方法a( )調(diào)用調(diào)用Student類的方法類的方法b( ),直接,直接

19、調(diào)用調(diào)用public voidpublic void a( ) a( ) b( ); / b( ); /調(diào)用調(diào)用b( )b( ) Student類的方法類的方法a( )調(diào)用調(diào)用Teacher類的方法類的方法b( ),先,先創(chuàng)建類對象,然后使用創(chuàng)建類對象,然后使用“.”調(diào)用調(diào)用public voidpublic void a( ) a( ) Teacher t = Teacher t = newnew Teacher( ); Teacher( ); t.b( ); / t.b( ); /調(diào)用調(diào)用TeacherTeacher類的類的b()b() public class Studentpublic

20、 void showInfo() return 我是一名學生我是一名學生; 方法的前往類型為方法的前往類型為void,方法中不能有,方法中不能有return前往值!前往值!常見錯誤常見錯誤4-1public class Studentpublic double getInfo() double weight = 95.5; double height = 1.69; return weight, height; 方法不能前往多個值!方法不能前往多個值!常見錯誤常見錯誤4-2public class Studentpublic String showInfo()return 我是一名學生我是一名

21、學生;public double getInfo() double weight = 95.5; double height = 1.69; return weight; 多個方法不能相互嵌套定義!多個方法不能相互嵌套定義!常見錯誤常見錯誤4-3public class Studentpublic String showInfo()return 我是一名學生我是一名學生;public double getInfo()double weight = 95.5; double height = 1.69; return weight;public class Studentint age=20;i

22、f(age20) System.out.println(年齡不符合入學要求!年齡不符合入學要求!); public void showInfo()return 我是一名學生我是一名學生;不能在方法外部直接寫程序邏輯代碼!不能在方法外部直接寫程序邏輯代碼!常見錯誤常見錯誤4-4指點指點計算平均分和總成果計算平均分和總成果 需求闡明:需求闡明:從鍵盤接納三門課分數(shù),計算三門課的平均從鍵盤接納三門課分數(shù),計算三門課的平均分和總成果,編寫成果計算類實現(xiàn)功能分和總成果,編寫成果計算類實現(xiàn)功能 實現(xiàn)思緒:實現(xiàn)思緒:1、創(chuàng)建類、創(chuàng)建類 ScoreCalc2、編寫方法實現(xiàn)各功能、編寫方法實現(xiàn)各功能(1) 計算

23、平均成果計算平均成果(2) 顯示平均成果顯示平均成果(3) 計算總成果計算總成果(4) 顯示總成果顯示總成果3、編寫測試類、編寫測試類TestScoreCalc進展驗證進展驗證成員變量和部分變量成員變量和部分變量2-1v變量聲明的位置決議變量作用域變量聲明的位置決議變量作用域v變量作用域確定可在程序中按變量名訪問該變量變量作用域確定可在程序中按變量名訪問該變量的區(qū)域的區(qū)域成員變量和部分變量成員變量和部分變量2-2變量變量1類型類型 變量變量1; 變量變量2類型類型 變量變量2;變量變量3類型類型 變量變量3;public 前往類型前往類型 方法方法1() 變量變量4類型類型 變量變量4; wh

24、ile(循環(huán)條件循環(huán)條件) 變量變量5類型類型 變量變量5; public class AutoLion AutoLion類的方法,類的方法,其他類的方法其他類的方法 誰能運用這些變量?誰能運用這些變量? 方法方法1 while循環(huán)循環(huán) 成員變量成員變量 部分變量部分變量 部分變量部分變量 v 作用域不同作用域不同v 部分變量的作用域僅限于定義它的方法部分變量的作用域僅限于定義它的方法v 成員變量的作用域在整個類內(nèi)部都是可見的成員變量的作用域在整個類內(nèi)部都是可見的v 初始值不同初始值不同v Java會給成員變量一個初始值會給成員變量一個初始值v Java不會給部分變量賦予初始值不會給部分變量賦

25、予初始值v 在同一個方法中,不允許有同名部分變量;在不同的方在同一個方法中,不允許有同名部分變量;在不同的方法中,可以有同名部分變量法中,可以有同名部分變量v 兩類變量同名時,部分變量具有更高的優(yōu)先級兩類變量同名時,部分變量具有更高的優(yōu)先級成員變量和部分變量的區(qū)別成員變量和部分變量的區(qū)別public class Test int score1 = 88; int score2 = 98; public void calcAvg() int avg = (score1 + score2)/2; public void showAvg() System.out.println(平均分是:平均分是:

26、 + avg); 常見錯誤常見錯誤1部分變量部分變量avg的作用域僅限于的作用域僅限于calcAvg()方法方法常見錯誤常見錯誤2for(int i = 0, a = 0; i 4; i+) a+;System.out.println ( a );代碼錯誤代碼錯誤a的作用域僅在的作用域僅在for循環(huán)中循環(huán)中 穩(wěn)定練習穩(wěn)定練習1.在以下在以下Java程序類中,語法正確的選項是程序類中,語法正確的選項是()。A) public int ufTest(int num) int sum=num+100; return sum; B) public String ufTest(int num) int

27、sum=num+100; return sum; C) public void ufTest(int num) int sum=num+100; return sum; D) public int ufTest(int num) int sum=num+100; 穩(wěn)定練習穩(wěn)定練習2.假設(shè)編寫一個假設(shè)編寫一個main()方法調(diào)用方法調(diào)用HelloAccp類的類的show()方法,方法,其運轉(zhuǎn)結(jié)果是。其運轉(zhuǎn)結(jié)果是。public class HelloAccp int a=100,b=50; public void avg() float c=(a+b)/2; public void show()

28、System.out.println(平均值為:平均值為:“ + c); A)存在錯誤,提示:無法解析存在錯誤,提示:無法解析cB)平均值為:平均值為:75C)平均值為:平均值為:75.0D)存在錯誤,提示:無法將數(shù)據(jù)類型存在錯誤,提示:無法將數(shù)據(jù)類型int轉(zhuǎn)換為轉(zhuǎn)換為float穩(wěn)定練習穩(wěn)定練習1.在在Java中,類中,類Test的源代碼如下所示,改程序的編譯運轉(zhuǎn)結(jié)果是的源代碼如下所示,改程序的編譯運轉(zhuǎn)結(jié)果是。public class Test() public int add(int a,intb) return a+b; public int length(inta,int b) retu

29、rn add(a,b)*2; public static void main(String args) Test test=new Test(); System.out.println(結(jié)果為:結(jié)果為:“ + test.length(10,20); A)第第6行出現(xiàn)編譯錯誤,提示無法找到行出現(xiàn)編譯錯誤,提示無法找到add方法方法B)第第10行出現(xiàn)編譯錯誤,提示無法將行出現(xiàn)編譯錯誤,提示無法將int類型自動轉(zhuǎn)換成類型自動轉(zhuǎn)換成String類型類型C)輸出:結(jié)果為:輸出:結(jié)果為:60D)輸出:結(jié)果為:輸出:結(jié)果為:null為什么要用帶參數(shù)的方法為什么要用帶參數(shù)的方法任務(wù)原理任務(wù)原理新穎桃汁新穎桃汁

30、新穎蘋果汁新穎蘋果汁新穎梨汁新穎梨汁輸輸出出三三種種果果汁汁如何運用帶參數(shù)的方法如何運用帶參數(shù)的方法3-1v定義帶參數(shù)的方法定義帶參數(shù)的方法v調(diào)用帶參數(shù)的方法調(diào)用帶參數(shù)的方法public class 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);S

31、ystem.out.println(myJuice);參數(shù)列表:參數(shù)列表:(數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)1,數(shù)據(jù)類型數(shù)據(jù)類型 參數(shù)參數(shù)2)調(diào)用方法,傳送的參數(shù)要調(diào)用方法,傳送的參數(shù)要與參數(shù)列表一一對應與參數(shù)列表一一對應如何運用帶參數(shù)的方法如何運用帶參數(shù)的方法3-2public 前往值類型前往值類型 方法名方法名(方式參數(shù)列表方式參數(shù)列表) /方法的主體方法的主體方法前往值的方法前往值的類型類型public class CustomerBiz String names = new String30; public void addName(String name)/添加客戶姓名添加客戶姓名publ

32、ic void showNames ()/顯示全部客戶姓名顯示全部客戶姓名傳送給方法的形參列表傳送給方法的形參列表一個方式參數(shù)一個方式參數(shù)沒有前往值沒有前往值如何運用帶參數(shù)的方法如何運用帶參數(shù)的方法3-3public static void main(String args) CustomerBiz st = new CustomerBiz(); Scanner input = new Scanner(System.in); for(int i=0;i5;i+) System.out.print(“請輸入客戶的姓名:請輸入客戶的姓名:); String newName = input.next

33、(); st.addName(newName); st.showNames(); 實參的類型、數(shù)量、順序?qū)崊⒌念愋?、?shù)量、順序都要與形參一一對應都要與形參一一對應先實例化對象,先實例化對象,再運用方法再運用方法調(diào)用帶參數(shù)的方法調(diào)用帶參數(shù)的方法對象名對象名.方法名實參方法名實參1, 實參實參2,,實參,實參n實參列表實參列表/方法定義方法定義public boolean searchName(int start ,int end ,String name)/方法體方法體/方法調(diào)用方法調(diào)用String s=開場開場;int e=3;String name=張三張三;boolean flag=對象名

34、對象名. searchName(s ,e ,name);形參和實參數(shù)據(jù)類型不一致!形參和實參數(shù)據(jù)類型不一致!常見錯誤常見錯誤4-1/方法定義方法定義public boolean searchName(int start,int end,String name)/方法體方法體/方法調(diào)用方法調(diào)用int s=1;int e=3;boolean flag= 對象名對象名.searchName(s,e);形參和實參數(shù)量不一致!形參和實參數(shù)量不一致!常見錯誤常見錯誤4-2/方法定義方法定義public boolean searchName(int start,int end,String name)/方法

35、體方法體/方法調(diào)用方法調(diào)用int s=1;int e=3;String name=張三張三;對象名對象名.searchName(s,e,name);調(diào)用方法后沒有對前往值作任何處置!調(diào)用方法后沒有對前往值作任何處置!常見錯誤常見錯誤4-3指點指點實現(xiàn)客戶姓名添加、顯示和查找實現(xiàn)客戶姓名添加、顯示和查找需求闡明:需求闡明:創(chuàng)建客戶業(yè)務(wù)類,實現(xiàn)客戶姓名的添加和顯創(chuàng)建客戶業(yè)務(wù)類,實現(xiàn)客戶姓名的添加和顯示示查找客戶姓名,給出查找結(jié)果查找客戶姓名,給出查找結(jié)果實現(xiàn)思緒:實現(xiàn)思緒:創(chuàng)建創(chuàng)建CustomerBiz類類 1. 創(chuàng)建帶參方法創(chuàng)建帶參方法addName() 2. 創(chuàng)建方法創(chuàng)建方法showNames

36、() 3. 創(chuàng)建帶參帶前往值的方法創(chuàng)建帶參帶前往值的方法public boolean search(String name) 創(chuàng)建測試類創(chuàng)建測試類練習練習實現(xiàn)學生姓名添加、顯示和修正實現(xiàn)學生姓名添加、顯示和修正需求闡明:需求闡明:創(chuàng)建學生業(yè)務(wù)類,實現(xiàn)學生姓名的添加和顯示創(chuàng)建學生業(yè)務(wù)類,實現(xiàn)學生姓名的添加和顯示修正學生姓名,給出修正結(jié)果修正學生姓名,給出修正結(jié)果實現(xiàn)思緒:實現(xiàn)思緒:創(chuàng)建創(chuàng)建StudentsBiz類類 1. 創(chuàng)建帶參方法創(chuàng)建帶參方法addName() 2. 創(chuàng)建方法創(chuàng)建方法showNames() 3. 創(chuàng)建帶參帶前往值的方法創(chuàng)建帶參帶前往值的方法public boolean edi

37、tName(String oldName,String newName) 創(chuàng)建測試類創(chuàng)建測試類作業(yè)作業(yè)計算器計算器(改寫改寫)v 需求闡明:需求闡明:v 將加減乘除方法改寫為帶參方法,再定義一個運算方法將加減乘除方法改寫為帶參方法,再定義一個運算方法ope() ,接納用戶選擇的運算和兩個數(shù)字,根據(jù)用戶選,接納用戶選擇的運算和兩個數(shù)字,根據(jù)用戶選擇的運算計算結(jié)果擇的運算計算結(jié)果v 提示:提示:v 定義方法定義方法add()v public int add(int num1,int num2)v 定義方法定義方法 “減減(minus)、“乘乘(multiple)、“除除(divide)v 定義方法

38、定義方法ope()v public int ope(int op,int num1,int num2)v /根據(jù)根據(jù)op的值前往各運算的結(jié)果的值前往各運算的結(jié)果v 作業(yè)作業(yè)判別三角形類型判別三角形類型v需求闡明:需求闡明:v根據(jù)三角形的三條邊長,判別其是直角、鈍根據(jù)三角形的三條邊長,判別其是直角、鈍角還是銳角三角形角還是銳角三角形v實現(xiàn)思緒:實現(xiàn)思緒:v 1. 根據(jù)輸入的三邊長,先判別能否構(gòu)成三根據(jù)輸入的三邊長,先判別能否構(gòu)成三角形。構(gòu)成三角形的條件是角形。構(gòu)成三角形的條件是“兩邊之和大于兩邊之和大于第三邊。第三邊。v public boolean isTriangle(int a,int b

39、,int c)v 2. 如能構(gòu)成三角形,判別三角形的類型。如能構(gòu)成三角形,判別三角形的類型。假設(shè)三角形的恣意一條邊的平方等于其它兩假設(shè)三角形的恣意一條邊的平方等于其它兩條邊平方的和,那么為直角三角形;假設(shè)恣條邊平方的和,那么為直角三角形;假設(shè)恣意一條邊的平方大于其它兩條邊平方的和,意一條邊的平方大于其它兩條邊平方的和,那么為鈍角三角形;否那么為銳角三角形那么為鈍角三角形;否那么為銳角三角形v public String sharp(int a,int b,int c)類名、屬性名、方法名及常量名的命名規(guī)范類名、屬性名、方法名及常量名的命名規(guī)范工程名、類名由一個或幾個單詞組成,每個單工程名、類名

40、由一個或幾個單詞組成,每個單詞的第一個字母大寫,如詞的第一個字母大寫,如Students、TestCustomer。屬性名、方法名、部分變量名由一個或幾個單屬性名、方法名、部分變量名由一個或幾個單詞組成,第一個單詞首字母小寫,其它單詞首詞組成,第一個單詞首字母小寫,其它單詞首字母大寫,如字母大寫,如isTriangle()、num1、addName()。常量名由一個或幾個單詞組成,一切字母大寫,常量名由一個或幾個單詞組成,一切字母大寫,如如PI。數(shù)據(jù)類型的深化了解數(shù)據(jù)類型的深化了解byte short int longfloat doublecharboolean String數(shù)組數(shù)組運用運用

41、class定義的類型定義的類型根本數(shù)據(jù)類型根本數(shù)據(jù)類型援用數(shù)據(jù)類型援用數(shù)據(jù)類型根本數(shù)據(jù)類型的深化了解根本數(shù)據(jù)類型的深化了解2-1v張浩和李明去年身高都是張浩和李明去年身高都是170cm,今年李明長,今年李明長到了到了180cm,張浩沒有變化,輸出去年和今年,張浩沒有變化,輸出去年和今年兩人身高兩人身高v定義兩個變量保管身高定義兩個變量保管身高v修正變量的值修正變量的值v輸出變量的值輸出變量的值根本數(shù)據(jù)類型的深化了解根本數(shù)據(jù)類型的深化了解2-2 int heightZhang = 170;int heightLi = heightZhang;System.out.println(去年去年-張浩的

42、身高是:張浩的身高是: + heightZhang +, 李明的身高是:李明的身高是: + heightLi);heightLi = 180;System.out.println(今年今年-張浩的身高是:張浩的身高是: + heightZhang +, 李明的身高是:李明的身高是: + heightLi);heightZhang170170heightLi180不同的變量會分配不不同的變量會分配不同的存儲空間同的存儲空間改動一個變量值不會改動一個變量值不會影響另一個變量值影響另一個變量值援用數(shù)據(jù)類型的深化了解援用數(shù)據(jù)類型的深化了解3-1v張浩和李明去年身高與體重均為張浩和李明去年身高與體重均為

43、170cm和和60kg,李明今年身高和體重變?yōu)?,李明今年身高和體重變?yōu)?80cm和和70kg,張浩無變化。輸出兩人的身高和體重,張浩無變化。輸出兩人的身高和體重v采用和上一個例如一樣的思緒看能否可行采用和上一個例如一樣的思緒看能否可行援用數(shù)據(jù)類型的深化了解援用數(shù)據(jù)類型的深化了解3-2 int infoZhang; /建立數(shù)組的援用建立數(shù)組的援用infoZhang=new int2; /創(chuàng)建數(shù)組對象創(chuàng)建數(shù)組對象,為其分配內(nèi)存空間為其分配內(nèi)存空間infoZhang0=170;infoZhang1=60; int infoLi = infoZhang; infoLi0 = 180;/今年李明的身高變

44、為今年李明的身高變?yōu)?80infoLi1 = 70;/今年李明的體重變?yōu)榻衲昀蠲鞯捏w重變?yōu)?0infoZhang0 x2a486c0 x2a486cinfoLi對援用數(shù)據(jù)類型,賦值是把原對象對援用數(shù)據(jù)類型,賦值是把原對象的援用傳送給另一個援用,兩個援的援用傳送給另一個援用,兩個援用指向同一塊內(nèi)存空間用指向同一塊內(nèi)存空間00170601807000援用數(shù)據(jù)類型的深化了解援用數(shù)據(jù)類型的深化了解3-3 int infoZhang = new int 170,60;int infoLi = new int2;for(int i = 0; i infoZhang.length; i+)infoLii =

45、 infoZhangi; infoLi0 = 180;/今年李明的身高變?yōu)榻衲昀蠲鞯纳砀咦優(yōu)?80infoLi1 = 70;/今年李明的體重變?yōu)榻衲昀蠲鞯捏w重變?yōu)?0infoZhang0 x2a486c0 x2a679dinfoLi170601706018070數(shù)組元素有默許值數(shù)組元素有默許值v運用運用Arrays類提供的類提供的sort()方法實現(xiàn)排序方法實現(xiàn)排序v定義一個獨立的方法來實現(xiàn)姓名排序,該方法定義一個獨立的方法來實現(xiàn)姓名排序,該方法的參數(shù)為數(shù)組類型的參數(shù)為數(shù)組類型數(shù)組類型的參數(shù)數(shù)組類型的參數(shù)編寫方法,實現(xiàn)學生的姓名排序編寫方法,實現(xiàn)學生的姓名排序 v定義學生類,添加屬性:三門課的

46、成果定義學生類,添加屬性:三門課的成果 v定義學生成果計算類,添加方法,傳送對象定義學生成果計算類,添加方法,傳送對象參數(shù)參數(shù) v定義測試類定義測試類對象類型的參數(shù)對象類型的參數(shù)3-1編寫學生成果計算類,計算學生平均分編寫學生成果計算類,計算學生平均分 public class Students /定義三門課成果屬性定義三門課成果屬性float java=0;float database=0;float html=0;三門課成果三門課成果public class Score /計算平均分,對象作為參數(shù)計算平均分,對象作為參數(shù)public float getAvg(Students stu)fl

47、oat avg=0;avg=(stu.java +stu.database +stu.html )/3;return avg;對象類型的參數(shù)對象類型的參數(shù)3-2前往結(jié)果前往結(jié)果對象類型的參數(shù)對象類型的參數(shù)public class TestScore public static void main(String args) Students stu=new Students();Score sc=new Score();float avg=0;stu.java=80;stu.database=95;stu.html=77;avg=sc.getAvg(stu);System.out.println

48、(該學生的平均分為:該學生的平均分為:+avg);調(diào)用方法,傳送參調(diào)用方法,傳送參數(shù),前往結(jié)果數(shù),前往結(jié)果對象類型的參數(shù)對象類型的參數(shù)3-3public class TestScore public static void main(String args) Students stu=new Students();Score sc=new Score();float avg=0;stu.java=80;stu.database=95;stu.html=77;avg=sc.getAvg(stu);System.out.println(該學生的平均分為:該學生的平均分為:+avg);public

49、class Score /計算平均分,對象作為參數(shù)計算平均分,對象作為參數(shù)public float getAvg(Students stu)float avg=0;avg=(stu.java +stu.database +stu.html )/3;return avg;main:stu0 x2a486c0.00.00.00main:avg80957784.0getAvg:stu0 x2a486c0getAvg:avg84.0省略內(nèi)存分配省略內(nèi)存分配內(nèi)存分配圖內(nèi)存分配圖 v Students類中定義身高屬性類中定義身高屬性v Height類中定義方法,傳送學生對象數(shù)組,求平類中定義方法,傳送學生

50、對象數(shù)組,求平均身高均身高v 測試類調(diào)用測試類調(diào)用Height類的方法類的方法對象數(shù)組類型的參數(shù)對象數(shù)組類型的參數(shù)2-1計算學生的平均身高計算學生的平均身高 public class Height public float getAvgHeight( Students stu)float avgHeight=0;float all=0;/一切學生的總身高一切學生的總身高int count=0;/學生計數(shù)學生計數(shù)for(int i=0; istu.length; i+) if(stui.height != 0) all=all+stui.height; count+; avgHeight=all

51、/count;return avgHeight;對象數(shù)組作為參數(shù)對象數(shù)組作為參數(shù)public class TestHeightpublic static void main(String args) Students stu = new Students5; Height h=new Height();float avgheight=h.getAvgHeight(stu); System.out.println(平均身高平均身高:+avgheight+cm);對象數(shù)組類型的參數(shù)對象數(shù)組類型的參數(shù)2-2調(diào)用方法,傳送對象數(shù)組調(diào)用方法,傳送對象數(shù)組指點指點添加會員添加會員需求闡明:需求闡明:添加會

52、員類和會員操作類,實現(xiàn)添加會員類和會員操作類,實現(xiàn)MyShopping系統(tǒng)的添加會員功能系統(tǒng)的添加會員功能 實現(xiàn)思緒:實現(xiàn)思緒:1、創(chuàng)建會員類、創(chuàng)建會員類Customer,添加會員編號,添加會員編號和會員積分屬性和會員積分屬性2、創(chuàng)建會員操作類、創(chuàng)建會員操作類CustManager,添加,添加show()方法顯示會員信息,該方法接納會方法顯示會員信息,該方法接納會員對象參數(shù)員對象參數(shù)3、編寫測試類、編寫測試類 TestCustomer,給會員,給會員屬性賦值,調(diào)用屬性賦值,調(diào)用CustManager類的類的show()方法方法練習練習查找會員積分查找會員積分 需求闡明:需求闡明:循環(huán)輸入多個會

53、員的信息,根據(jù)會員編號,循環(huán)輸入多個會員的信息,根據(jù)會員編號,查找會員積分查找會員積分 構(gòu)造方法構(gòu)造方法 3-1對象初始化對象初始化Students stu = new Students();stu.java=80;stu.database=95;stu.html=77;class Students / 屬性屬性 /* 無參構(gòu)造方法無參構(gòu)造方法 */ public Students() java = 80; database = 95; html = 77; System.out.println(執(zhí)行構(gòu)造方法執(zhí)行構(gòu)造方法); 運用構(gòu)造方法:運用構(gòu)造方法:Students stu = new S

54、tudent(); 能否在創(chuàng)建對象的能否在創(chuàng)建對象的同時就完成賦值同時就完成賦值? ?構(gòu)造方法構(gòu)造方法構(gòu)造方法構(gòu)造方法 3-2構(gòu)造方法構(gòu)造方法public 構(gòu)造方法名構(gòu)造方法名( ) /初始化代碼初始化代碼與類名一樣與類名一樣沒有前往值沒有前往值類型類型可以指定可以指定參數(shù)參數(shù) 方法重載方法重載一個類能否可以有多個構(gòu)造方法?能否在創(chuàng)一個類能否可以有多個構(gòu)造方法?能否在創(chuàng)建對象時經(jīng)過構(gòu)造方法完成不同屬性的動態(tài)建對象時經(jīng)過構(gòu)造方法完成不同屬性的動態(tài)賦值?賦值?public Students() /代碼代碼 public Students(int java, int datebase, int ht

55、ml) /代碼代碼 能。經(jīng)過帶參的構(gòu)造方法。能。經(jīng)過帶參的構(gòu)造方法。假設(shè)用戶提供了自定義的構(gòu)造方法,系假設(shè)用戶提供了自定義的構(gòu)造方法,系統(tǒng)將不會再提供默許的構(gòu)造方法。假設(shè)統(tǒng)將不會再提供默許的構(gòu)造方法。假設(shè)要運用它,必需手動添加。要運用它,必需手動添加。this的用法的用法this關(guān)鍵字的用法關(guān)鍵字的用法調(diào)用屬性調(diào)用屬性調(diào)用方法調(diào)用方法調(diào)用構(gòu)造方法調(diào)用構(gòu)造方法this.health = 100; = 大黃大黃;this.print(); this();假設(shè)運用,必需是假設(shè)運用,必需是構(gòu)造方法中的第一構(gòu)造方法中的第一條語句條語句 this(小黑小黑,100,100,雄雄);方法

56、重載方法重載方法重載,指同一個類中多個方法:方法重載,指同一個類中多個方法:方法名一樣方法名一樣參數(shù)列表不同參數(shù)列表不同(參數(shù)個數(shù)或參數(shù)類型不同參數(shù)個數(shù)或參數(shù)類型不同)與前往值、訪問修飾符無關(guān)與前往值、訪問修飾符無關(guān)System.out.println(45);System.out.println(true);System.out.println(“找到該學生!找到該學生!); int a=Math.max(3,5);double b=Math.max(3.6,1.8);構(gòu)造方法及方法重載穩(wěn)定練習構(gòu)造方法及方法重載穩(wěn)定練習4-11.在如下所示的在如下所示的Sample類中,共有類中,共有()個

57、構(gòu)造方法。個構(gòu)造方法。 public class Sample int x; private Sample() x=1; public void Sample(double f) x=(int)f; public Sample(String s) A) 4 B) 3 C)2 D) 1構(gòu)造方法及方法重載穩(wěn)定練習構(gòu)造方法及方法重載穩(wěn)定練習4-22.給定如下給定如下Java代碼,編譯運轉(zhuǎn),結(jié)果是。代碼,編譯運轉(zhuǎn),結(jié)果是。public class Sample int x; public void Sample(double f) x=(int)f; public static void main(S

58、tring args) Sample s = new Sample(5.2); System.out.printfln(s.x); A)發(fā)生編譯錯誤,提示:出現(xiàn)反復的方法發(fā)生編譯錯誤,提示:出現(xiàn)反復的方法SampleB)發(fā)生編譯錯誤,提示:未定義構(gòu)造方法方法發(fā)生編譯錯誤,提示:未定義構(gòu)造方法方法Sample(double)C)輸出結(jié)果:輸出結(jié)果:5.2D)輸出結(jié)果:輸出結(jié)果:5構(gòu)造方法及方法重載穩(wěn)定練習構(gòu)造方法及方法重載穩(wěn)定練習4-33.給定如下給定如下Java代碼,編譯運轉(zhuǎn),結(jié)果是。代碼,編譯運轉(zhuǎn),結(jié)果是。public class Sample() public double resule(

59、double d1,double d2) return d1d2?d1:d2; public int resule(int d1,int d2) return d1-d2; public static void main(String args) Sample s = new Sample(); System.out.printf(s.result(2,3.0) + “, ); System.out.printf(s.result(4.0,4.5) + “, ); System.out.printf(s.result(10,9) + “, ); A) 3.0,4.0,1 B) 2,4.0,1

60、C) 3.0,4.5,1 D)-1,4.0,1構(gòu)造方法及方法重載穩(wěn)定練習構(gòu)造方法及方法重載穩(wěn)定練習4-44.請指出下面代碼中存在的錯誤,并闡明錯誤緣由。請指出下面代碼中存在的錯誤,并闡明錯誤緣由。 public class Sample public void amethod(int i,String s) public void amethod(String s,int i) public void amethod(String s1,String s2) public void amethod(int i,String mystring) public void Amethod(int i

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論