《信息系統(tǒng)開(kāi)發(fā)》系統(tǒng)分析與設(shè)計(jì)概述演示文檔
《《信息系統(tǒng)開(kāi)發(fā)》系統(tǒng)分析與設(shè)計(jì)概述演示文檔》由會(huì)員分享,可在線閱讀,更多相關(guān)《《信息系統(tǒng)開(kāi)發(fā)》系統(tǒng)分析與設(shè)計(jì)概述演示文檔(126頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
本章目標(biāo),掌握類和對(duì)象 理解封裝 會(huì)創(chuàng)建和使用對(duì)象,1/39,萬(wàn)物皆對(duì)象,世界是由什么組成的?,分類是人們認(rèn)識(shí)世界的一個(gè)很自然的過(guò)程,在日常生活中會(huì)不自覺(jué)地進(jìn)行分類,2/39,身邊的對(duì)象,張浩,李明,收銀員 員工號(hào)—10001 姓名—李明 部門(mén)—財(cái)務(wù)部 操作: 收款 打印賬單,顧客 姓名—張浩 年齡—20 體重—60kg 操作: 購(gòu)買商品,3/40,3/39,,,對(duì)象的特征——屬性,屬性——對(duì)象具有的各種特征 每個(gè)對(duì)象的每個(gè)屬性都擁有特定值 例如:張浩和李明的年齡、姓名不一樣,20歲,張浩,,,,,屬性,60kg,顧客張浩,4/39,對(duì)象的特征——方法,方法——對(duì)象執(zhí)行的操作 對(duì)象:用來(lái)描述客觀事物的一個(gè)實(shí)體,由一組屬性和方法構(gòu)成,打印賬單,,,,,,,方法,刷卡,收銀員李明,5/40,收銀,5/39,對(duì)象的屬性和方法,列出尼古拉斯·凱奇駕駛的這輛法拉利F360 Spider的屬性和方法 列出小狗對(duì)象的屬性和方法,屬性: 品牌:法拉利 型號(hào):F360 Spider 顏色:黃色 價(jià)格:380萬(wàn)元 方法: 發(fā)動(dòng) 停止 加速,屬性: 顏色:白色 方法: 叫 跑 吃,6/40,提問(wèn),6/39,封裝,對(duì)象同時(shí)具有屬性和方法兩項(xiàng)特性 對(duì)象的屬性和方法通常被封裝在一起,共同體現(xiàn)事物的特性, 二者相輔相承,不能分割,一輛汽車,有完好的零件和特定的顏色 還應(yīng)具備開(kāi)動(dòng)、剎車等方法行為,,7/39,小結(jié),說(shuō)一說(shuō)教室里的對(duì)象 描述他們的屬性和方法,,顏色:黑色 品牌:BENQ 投影,姓名:張三 年齡:20 學(xué)習(xí),類型:白熾燈 開(kāi) 關(guān) 變亮 變暗,材制: 木質(zhì) 支撐物品,提問(wèn),,,,,8/40,8/39,從對(duì)象抽象出“類”,轎車,抽取出下列對(duì)象的共同特征(屬性和方法),問(wèn)題,顧客,9/39,類,顧客類 轎車類 …… ……,,類是模子,定義對(duì)象將會(huì)擁有的特征(屬性)和行為(方法),類是對(duì)象的類型 不同于int類型:具有方法,各種口味的球狀冰淇淋,10/40,10/39,類和對(duì)象的關(guān)系,類是抽象的概念,僅僅是模板 比如說(shuō):“人” 對(duì)象是一個(gè)你能夠看得到、摸得著的具體實(shí)體,小布什,普京,克林頓,……,,,11/39,Java 是面向?qū)ο蟮恼Z(yǔ)言,所有Java程序都以類class為組織單元 關(guān)鍵字class定義自定義的數(shù)據(jù)類型,public class HelloWorld { public static void main(String[] args){ System.out.println("Hello World!!!"); } },,12/40,類的基本框架,,12/39,Java類模板,類將現(xiàn)實(shí)世界中的概念模擬到計(jì)算機(jī)程序中,public class 類名 { //定義屬性部分 屬性1的類型 屬性1; 屬性2的類型 屬性2; … 屬性n的類型 屬性n; //定義方法部分 方法1; 方法2; … 方法m; },語(yǔ)法,13/39,定義類,定義一個(gè)類的步驟,14/39,public class School { //定義屬性 String schoolName; //學(xué)校名稱 int classNumber; //教室數(shù)目 int labNumber; //機(jī)房數(shù)目 //定義方法 public void showSchool(){ System.out.println(schoolName + classNumber + labNumber ); } },15/39,如何創(chuàng)建和使用對(duì)象,使用對(duì)象的步驟 創(chuàng)建對(duì)象 類名 對(duì)象名 = new 類名(); 引用對(duì)象成員:使用“.”進(jìn)行以下操作 引用類的屬性:對(duì)象名.屬性 引用類的方法:對(duì)象名.方法名(),School mySchool = new School();,mySchool.name = “西南交大"; //給name屬性賦值 mySchool.showSchool(); //調(diào)用showCenter()方法,語(yǔ)法,語(yǔ)法,16/39,創(chuàng)建和使用對(duì)象示例,,一個(gè)景區(qū)根據(jù)游人的年齡收取不同價(jià)格的門(mén)票。請(qǐng)編寫(xiě)游人類,根據(jù)年齡段決定能夠購(gòu)買的門(mén)票價(jià)格并輸出,問(wèn)題,分析,17/40,17/39,創(chuàng)建和使用對(duì)象示例,18/39,19/39,創(chuàng)建和使用對(duì)象示例,小結(jié),類和對(duì)象的關(guān)系? 如何創(chuàng)建和使用對(duì)象?,提問(wèn),經(jīng)驗(yàn),利用MyEclipse自動(dòng)提示功能,20/39,面向?qū)ο螅∣O)的優(yōu)點(diǎn),21/39,總結(jié),對(duì)象是用來(lái)描述客觀事物的一個(gè)實(shí)體 類定義了對(duì)象將會(huì)擁有的特征(屬性)和行為(方法) 類是對(duì)象的類型,對(duì)象是類的實(shí)例 使用類的步驟,22/39,本章目標(biāo),會(huì)定義和使用類的方法 理解變量作用域 會(huì)添加JavaDoc注釋,23/38,類的方法,寫(xiě)出獅子對(duì)象的“跑”方法、 “叫”方法,電動(dòng)玩具獅子 屬性: 顏色:黃色 行為: 跑 叫,按此按鈕, 獅子開(kāi)始叫,按此按鈕, 獅子開(kāi)始跑,問(wèn)題,24/38,類的方法示例,AutoLion類代碼實(shí)現(xiàn),public class AutoLion { String color = "黃色"; public void run() { System.out.println("正在以0.1米/秒的速度向前奔跑"); } public String bark() { String sound = "大聲吼叫" ; return sound; } },方法體,返回值類型,,,,,,,方法名稱,示例,25/38,如何定義類的方法,類的方法定義類的某種行為(或功能),定義類的方法,public 返回值類型 方法名() { //這里編寫(xiě)方法的主體 },步驟一:定義方法名以及返回值類型,步驟二:編寫(xiě)方法體,語(yǔ)法,26/38,方法的返回值,兩種情況 如果方法具有返回值,方法中必須使用關(guān)鍵字return返回該值,返回值類型為該返回值的類型 如果方法沒(méi)有返回值,返回值類型為void,public class Student{ String name = "張三"; public String getName(){ return name; } //…… },,,return 表達(dá)式;,作用: 跳出方法、返回結(jié)果,語(yǔ)法,27/38,public class Student{ String name = "張三"; public void getName(){ } //…… },方法調(diào)用,方法是個(gè)“黑匣子”,完成某個(gè)特定的應(yīng)用程序功能,并返回結(jié)果 方法調(diào)用:執(zhí)行方法中包含的語(yǔ)句,對(duì)象名.方法名();,小明過(guò)生日,爸爸送他一個(gè)電動(dòng)獅子玩具,編程測(cè)試這個(gè)獅子能否正常工作,語(yǔ)法,問(wèn)題,28/38,方法調(diào)用,,public class AutoLion { String color = "黃色"; //顏色 /*跑*/ public void run(){ System.out.println("正在以0.1米/秒的速度向前奔跑。"); } /*叫*/ public String bark(){ String sound = "大聲吼叫" ; return sound; } /*獲得顏色*/ public String getColor(){ return color; } /*顯示獅子特性*/ public String showLion(){ return "這是一個(gè)" + getColor() + "的玩具獅子!"; } },public class TestLion { public static void main(String[ ] args) { AutoLion lion = new AutoLion(); System.out.println(lion.showLion()); lion.run(); System.out.println(lion.bark()); } },在類的方法中調(diào)用 該類另一個(gè)方法,,,,,在main()方法中 調(diào)用類的方法,29/38,方法調(diào)用小結(jié),方法之間允許相互調(diào)用,不需要知道方法的具體實(shí)現(xiàn),實(shí)現(xiàn)重用,提高效率,30/38,public class Student1 { public void showInfo() { return "我是一名學(xué)生"; } },方法的返回值類型為void,方法中不能有return 返回值!,,常見(jiàn)錯(cuò)誤4-1,,代碼閱讀,31/38,注意,public class Student2 { public double getInfo() { double weight = 95.5; double height = 1.69; return weight, height; } },方法不能返回多個(gè)值!,,常見(jiàn)錯(cuò)誤4-2,代碼閱讀,32/38,注意,public class Student3 { public String showInfo() { return "我是一名學(xué)生"; public double getInfo() { double weight = 95.5; double height = 1.69; return weight; } } },多個(gè)方法不能相互嵌套定義!,,常見(jiàn)錯(cuò)誤4-3,public class Student3 { public String showInfo() { return "我是一名學(xué)生"; } public double getInfo() { double weight = 95.5; double height = 1.69; return weight; } },,代碼閱讀,33/38,注意,public class Student4 { int age = 20; if(age < 20) { System.out.println("年齡不符合入學(xué)要求!"); } public void showInfo() { return "我是一名學(xué)生"; } },不能在方法外部直接寫(xiě)程序邏輯代碼!,常見(jiàn)錯(cuò)誤4-4,,代碼閱讀,34/38,注意,本章目標(biāo),會(huì)定義和使用類的方法 理解變量作用域 會(huì)添加JavaDoc注釋,35/38,成員變量和局部變量2-1,變量聲明的位置決定變量作用域 變量作用域確定可在程序中按變量名訪問(wèn)該變量的區(qū)域,//… for(int a = 0; a < 4; a++) { System.out.println ("hello" ); } System.out.println ( a ); //…,,代碼錯(cuò)誤,a的作用域僅在for循環(huán)中,36/38,成員變量和局部變量2-2,誰(shuí)能使用這些變量?,37/38,,變量1類型 變量1; 變量2類型 變量2; 變量3類型 變量3;,public 返回類型 方法1(){ 變量4類型 變量4; } public 返回類型 方法2(){ 變量5類型 變量5; },public class AutoLion{,},AutoLion類的方法, 其他類的方法,方法1,方法2,成員變量,局部變量,局部變量,問(wèn)題,成員變量和局部變量的區(qū)別,作用域不同 局部變量的作用域僅限于定義它的方法 成員變量的作用域在整個(gè)類內(nèi)部都是可見(jiàn)的 初始值不同 Java會(huì)給成員變量一個(gè)初始值 Java不會(huì)給局部變量賦予初始值,在同一個(gè)類中,成員變量和局部變量同名時(shí),局部變量具有更高的優(yōu)先級(jí),在同一個(gè)方法中,不允許有同名局部變量 在不同的方法中,可以有同名局部變量,注意,38/38,public class Test { int score1 = 88; int score2 = 98; public void calcAvg() { int avg = (score1 + score2)/2; } public void showAvg(){ System.out.println("平均分是: " + avg); } },,常見(jiàn)錯(cuò)誤,局部變量avg的作用域僅限于calcAvg()方法,代碼閱讀,,39/38,注意,public static void main(String[ ] args) { Scanner input = new Scanner(System.in); System.out.print("請(qǐng)輸入Java成績(jī):"); int java = input.nextInt(); //…… /*計(jì)算并顯示輸出*/ int total = java + c + db; double avg = total / 3; System.out.print("總成績(jī):" + total); System.out.print("\n平均分: " + avg); },面向?qū)ο蟮木幊蹋∣OP),ScoreCalc類 和 Test類,,40/38,如果還要再執(zhí)行這個(gè)功能,難道還要重復(fù)再寫(xiě)一遍?,本章目標(biāo),會(huì)定義和使用類的方法 理解變量作用域 會(huì)添加JavaDoc注釋,41/38,JavaDoc注釋,回顧學(xué)過(guò)的注釋方式 單行注釋://這里是單行注釋 多行注釋:/*這里是多行注釋, 可以多行*/ JavaDoc注釋:使用“/**”開(kāi)始和“*/”結(jié)束,用來(lái)注釋類、屬性和方法等,/** * mySchool類 *@author John *@version 1.0 2016/06/21 */,描述信息,@author :描述作者信息,@version :描述版本信息,42/38,添加JavaDoc注釋,為ScoreCalc類添加JavaDoc注釋,/** * ScoreCalc類 * @author 張小明 * @version 2.0 2013/06/01 */ public class ScoreCalc { /** Java成績(jī) */ int java; //... /** * 計(jì)算總成績(jī) * @return total */ public int calcTotalScore() { int total = java + c + db; return total; } //... },,,,方法的JavaDoc注釋,屬性的JavaDoc注釋,類的JavaDoc注釋,問(wèn)題,43/38,如何生成JavaDoc文檔,JavaDoc能夠從源代碼中抽取類、屬性、方法等的注釋,形成一個(gè)配套的API幫助文檔 生成JavaDoc文檔 使用命令行方式生成 使用MyEclipse工具生成,44/38,總結(jié),定義類的方法必須包括以下三個(gè)部分 方法的名稱 方法返回值的類型 方法的主體 類的方法調(diào)用,使用如下兩種形式 同一個(gè)類中的方法,直接使用“方法名()”調(diào)用 不同類的方法,首先創(chuàng)建對(duì)象,再使用 “對(duì)象名.方法名()”來(lái)調(diào)用 在Java中,有成員變量和局部變量,它們的作用域各不相同 JavaDoc注釋以“/**”開(kāi)頭,以“*/”結(jié)尾,45/38,本章目標(biāo),會(huì)定義帶參方法 會(huì)使用帶參方法 會(huì)創(chuàng)建包組織Java工程,46/40,為什么要用帶參數(shù)的方法,工作原理,新鮮桃汁,新鮮蘋(píng)果汁,新鮮梨汁,輸出三種果汁,47/40,如何使用帶參數(shù)的方法3-1,定義帶參數(shù)的方法 調(diào)用帶參數(shù)的方法,,public class ZhazhiJi { public String zhazhi ( String fruit ) { String juice = fruit + "汁"; return juice; } },/*調(diào)用zhazhi方法*/ ZhazhiJi myZhazhiji = new ZhazhiJi(); String myFruit = "蘋(píng)果"; String myJuice = myZhazhi.zhazhi(myFruit); System.out.println(myJuice);,參數(shù)列表: (數(shù)據(jù)類型 參數(shù)1,數(shù)據(jù)類型 參數(shù)2…),調(diào)用方法,傳遞的參數(shù)要與參數(shù)列表一一對(duì)應(yīng),48/40,如何使用帶參數(shù)的方法3-2,, 返回類型 () { //方法的主體 },該方法允許被訪問(wèn)調(diào)用的權(quán)限范圍,方法返回值的類型,public class StudentsBiz { String[ ] names = new String[30]; public void addName(String name) { //增加學(xué)生姓名 } public void showNames() { //顯示全部學(xué)生姓名 } },傳送給方法的形參列表,一個(gè)形式參數(shù),沒(méi)有返回值,語(yǔ)法,示例,定義帶參數(shù)的方法,49/40,如何使用帶參數(shù)的方法3-3,,public static void main(String[] args) { StudentsBiz st = new StudentsBiz(); Scanner input = new Scanner(System.in); for(int i=0;i<5;i++){ System.out.print("請(qǐng)輸入學(xué)生姓名:"); String newName = input.next(); st.addName(newName); } st.showNames(); },實(shí)參的類型、數(shù)量、順序 都要與形參一一對(duì)應(yīng),先實(shí)例化對(duì)象, 再使用方法,,調(diào)用帶參數(shù)的方法,對(duì)象名.方法名(參數(shù)1, 參數(shù)2,……,參數(shù)n),實(shí)參列表,語(yǔ)法,示例,50/40,帶多個(gè)參數(shù)的方法2-1,設(shè)計(jì)方法,通過(guò)傳遞三個(gè)參數(shù)(開(kāi)始位置、結(jié)束位置、查找的姓名)來(lái)實(shí)現(xiàn),在保存了多個(gè)學(xué)生姓名的數(shù)組中,指定查找區(qū)間,查找某個(gè)學(xué)生姓名并顯示是否查找成功,問(wèn)題,分析,51/40,public boolean searchName (int start,int end,String name) { boolean find = false; // 是否找到標(biāo)識(shí) // 指定區(qū)間數(shù)組中,查找姓名 for(int i=start-1;i- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
5 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 信息系統(tǒng) 開(kāi)發(fā) 系統(tǒng)分析 設(shè)計(jì) 概述 演示 文檔
鏈接地址:http://m.hcyjhs8.com/p-249536.html