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