




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、抽象和封裝第一章課程地位每階段已包括:項(xiàng)目實(shí)戰(zhàn)、COT課程 總課時(shí): 1008C#OOPJavaScriptT-SQLJava OOPS2350Y2344JSPS2:Java階段項(xiàng)目預(yù)備課程WinFormsLogic JavaS1314S1:.NET階段項(xiàng)目 HibernateN-TierAjaxSpringStrutsHTMLC#NTCProject知識(shí)Y2:.NET畢業(yè)設(shè)計(jì)項(xiàng)目COTCOTCOTY2:Java畢業(yè)設(shè)計(jì)項(xiàng)目目標(biāo)崗位標(biāo)準(zhǔn)手冊(cè)就業(yè)技能結(jié)構(gòu)圖本門課程目標(biāo)學(xué)完本門課程后,你能夠:使用Java編寫面向?qū)ο蟮某绦蚴褂眉洗嫒?duì)象使用Java異常處理編寫程序使用JDBC操作數(shù)據(jù)庫(kù)使用Jav
2、a操作XML文件使用Oracle進(jìn)行簡(jiǎn)單的數(shù)據(jù)操作課程項(xiàng)目展示電子寵物系統(tǒng)主人登錄領(lǐng)養(yǎng)寵物給寵物喂食與寵物游戲給寵物看病顯示主人信息顯示寵物信息 現(xiàn)場(chǎng)演示貫穿案例相關(guān)課程回顧什么是類,什么是對(duì)象?如何在類中編寫方法?如何創(chuàng)建對(duì)象?如何在程序中接收控制臺(tái)的輸入?預(yù)習(xí)檢查如何從現(xiàn)實(shí)世界中抽象出類?構(gòu)造方法的作用和特點(diǎn)是什么?什么是方法重載?如何實(shí)現(xiàn)類的封裝?本章任務(wù)用類圖描述電子寵物系統(tǒng)的設(shè)計(jì)編寫代碼實(shí)現(xiàn)領(lǐng)養(yǎng)寵物功能 使用類圖描述設(shè)計(jì)掌握面向?qū)ο笤O(shè)計(jì)基本步驟掌握類和對(duì)象的概念掌握構(gòu)造方法及其重載掌握封裝的概念及其使用本章目標(biāo)為什么使用面向?qū)ο?-1現(xiàn)實(shí)世界是由什么組成的? 世界由對(duì)象組成 為什么使
3、用面向?qū)ο?-2軟件出現(xiàn)的目的是為了:用計(jì)算機(jī)的語(yǔ)言描述現(xiàn)實(shí)世界用計(jì)算機(jī)解決現(xiàn)實(shí)世界的問(wèn)題出現(xiàn)了軟件危機(jī),如何解決? 用面向?qū)ο蟮姆绞矫枋鰧?duì)象的世界 符合人類思維習(xí)慣 “問(wèn)題”和“解”一致 一個(gè)現(xiàn)實(shí)世界的問(wèn)題 寵物現(xiàn)實(shí)世界的對(duì)象如何在計(jì)算機(jī)中描述它?從現(xiàn)實(shí)中抽象出類分三步: 1. 找出它的種類 2. 找出它的屬性 3. 找出它的行為 用面向?qū)ο竺枋鍪澜?-1用面向?qū)ο蟮乃枷朊枋鍪澜绲谝徊剑喊l(fā)現(xiàn)類 根據(jù)“對(duì)象”抽象出“類” class Dog 名詞 各個(gè)狗對(duì)象 用面向?qū)ο竺枋鍪澜?-2第二步:發(fā)現(xiàn)類的屬性 狗類共有的特征: 1. 品種2. 年齡3. 昵稱4. 健康情況5. 跟主人的親密度 cla
4、ss Dog String name = 旺財(cái); / 昵稱 int health = 100; / 健康值 int love = 0; / 親密度 String strain = 拉布拉多犬; / 品種 只放我關(guān)心的屬性名詞用面向?qū)ο竺枋鍪澜?-3第三步:發(fā)現(xiàn)類的方法 狗類共有的行為: 1. 跑2. 吠3. 輸出狗的信息 動(dòng)詞class Dog String name = 旺財(cái); / 昵稱 int health = 100; / 健康值 int love = 0; / 親密度 String strain = 拉布拉多犬; / 品種 /* 輸出狗的信息 */ public void print(
5、) / 輸出狗信息的代碼 只放我關(guān)心的方法類圖使用類圖描述類用于分析和設(shè)計(jì)“類”直觀、容易理解+ name:String+ health:int+ love:int+ strain:StringDog+ print( ) : void“+”:public“-”:private類名返回值類型類型屬性名參數(shù):名字:類型,名字:類型方法名小結(jié)面向?qū)ο笤O(shè)計(jì)的過(guò)程是什么?抽象的原則是什么?為什么說(shuō)類圖是面向?qū)ο笤O(shè)計(jì)的好工具?實(shí)現(xiàn)領(lǐng)養(yǎng)寵物實(shí)現(xiàn)領(lǐng)養(yǎng)寵物功能編寫寵物類Dog和Penguin創(chuàng)建寵物對(duì)象,輸入寵物信息,最后輸出演示示例:領(lǐng)養(yǎng)寵物功能構(gòu)造方法 3-1對(duì)象初始化Penguin pgn = new P
6、enguin(); = qq;pgn.sex = Q仔; class Penguin / 屬性 /* 無(wú)參構(gòu)造方法 */ public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(執(zhí)行構(gòu)造方法); 使用構(gòu)造方法:Penguin pgn1 = new Penguin(); 能否在創(chuàng)建對(duì)象的同時(shí)就完成賦值?構(gòu)造方法構(gòu)造方法 3-2構(gòu)造方法public 構(gòu)造方法名( ) /初始化代碼與類名相同沒有返回值類型public Penguin() name = qq; love = 20; sex = Q仔; Sy
7、stem.out.println(執(zhí)行構(gòu)造方法);可以指定參數(shù) 構(gòu)造方法 3-3閱讀代碼,說(shuō)出運(yùn)行結(jié)果,并指出原因class Penguin public void Penguin() health=10; sex=雄; System.out.println(執(zhí)行構(gòu)造方法); public void print() System.out.println(企鵝的名字是 + name + ,健康值是 + health + ,性別是 + sex); Penguin pgn3=new Penguin();pgn3.print();有返回值類型,不是構(gòu)造方法 常見錯(cuò)誤請(qǐng)指出下面代碼的錯(cuò)誤class Do
8、g private String name = 旺財(cái); / 昵稱 private int health = 100; / 健康值 private int love = 0; / 親密度 public void play(int n) int localv; health = health - n; System.out.println(name+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 局部變量沒有初始化靜態(tài)常量static可以用來(lái)修飾屬性、方法和代碼塊
9、static修飾的屬性和方法稱為類屬性(類變量)、類方法不使用static修飾的屬性和方法,屬于單個(gè)對(duì)象,通常稱為實(shí)例屬性(實(shí)例變量)、實(shí)例方法static修飾的變量和方法可以通過(guò)類名和對(duì)象名訪問(wèn),而不用static修飾的變量和方法只能通過(guò)對(duì)象名訪問(wèn)final可以用來(lái)修飾屬性、方法和類用final修飾的變量成為常量,其值固定不變Penguin pgn1 = new Penguin();pgn1.sex = Penguin.SEX_MALE; class Penguin static final String SEX_MALE=Q仔; static final String SEX_FEMALE
10、=Q妹; Java中定義常量的語(yǔ)法static void print() 用類名調(diào)用:Dog.print(); 使用static定義變量 使用static定義方法 演示示例:靜態(tài)常量可否這樣賦值?常見錯(cuò)誤請(qǐng)指出下面代碼的錯(cuò)誤class Dog private String name = 旺財(cái); / 昵稱 private int health = 100; / 健康值 private int love = 0; / 親密度 public void play(int n) static int localv=5; health = health - n; System.out.println(na
11、me+ +localv+ +health+ +love); public static void main(String args) Dog d=new Dog(); d.play(5); 在方法里不可以定義static變量 方法重載一個(gè)類是否可以有多個(gè)構(gòu)造方法?方法重載,指同一個(gè)類中多個(gè)方法:方法名相同參數(shù)列表不同與返回值、訪問(wèn)修飾符無(wú)關(guān) public Penguin() /代碼 public Penguin(String name, int health, int love, String sex) /代碼 示例2 System.out.println(45);System.out.pri
12、ntln(true);System.out.println(狗在玩耍!); 示例1 為什么要使用封裝 下面代碼有什么問(wèn)題?如何解決上面設(shè)計(jì)的缺陷?Dog d = new Dog();d.health = 1000; 不合理的賦值 使用封裝 什么是封裝面向?qū)ο笕筇卣髦环庋b封裝的概念封裝的好處封裝:將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問(wèn),而是通過(guò)該類提供的方法來(lái)實(shí)現(xiàn)對(duì)隱藏信息的操作和訪問(wèn) 隱藏類的實(shí)現(xiàn)細(xì)節(jié)只能通過(guò)規(guī)定方法訪問(wèn)數(shù)據(jù)方便加入控制語(yǔ)句方便修改實(shí)現(xiàn)如何使用封裝封裝的步驟 修改屬性的可見性 創(chuàng)建getter/setter方法 在getter/setter方法中加入屬性控制語(yǔ)句
13、 設(shè)為private用于屬性的讀寫 對(duì)屬性值的合法性進(jìn)行判斷 class Dog private String name = 旺財(cái); / 昵稱 private int health = 100; / 健康值 private int love = 0; / 親密度 private String strain = 拉布拉多犬; / 品種 public int getHealth() return health; public void setHealth (int health) if (health 100 | health 0) this.health = 40; System.out.pri
14、ntln(健康值應(yīng)該在0和100之間,默認(rèn)值是40); else this.health = health; / 其它getter/setter方法this代表當(dāng)前對(duì)象 1 2 2 3 - name:String- health:int- love:int- strain:StringDog+ print():void+ setHealth():void+ getHealth():String this的用法this關(guān)鍵字的用法調(diào)用屬性調(diào)用方法調(diào)用構(gòu)造方法this.health = 100; = 大黃;this.print(); this();如果使用,必須是構(gòu)造方法中的第
15、一條語(yǔ)句 this(小黑,100,100,雄);小結(jié)分析需求,用封裝方式設(shè)計(jì)類,畫出類圖汽車銷售人員銷售汽車,可售款式有凱越、君威每款汽車有款式和編號(hào),款式、編號(hào)不能修改汽車銷售人員有姓名,姓名不能修改銷售人員有兩種銷售方式:按車輛銷售,每次一輛按車型銷售(凱越),要同時(shí)告訴銷售人員購(gòu)買數(shù)量- type:String- id:StringExcelle+ Excelle(id:String,type:String)+ getType():String+ getId():String- type:String- id:StringRegal+ Regal(id:String,type:Strin
16、g)+ getType():String+ getId():String- name:StringSeller+ getName():String+ setName(name:String):void+ sell(car:Excelle):void+ sell(car:Regal):void+ sell(car:Excelle,num:int):void 凱越 君威 銷售員 練習(xí)用類圖設(shè)計(jì)Dog和Penguin類 需求說(shuō)明:運(yùn)用面向?qū)ο笏枷氤橄蟪鯠og類和Penguin類,畫出對(duì)應(yīng)類圖根據(jù)類圖編寫Dog類和Penguin類添加默認(rèn)構(gòu)造方法完成時(shí)間:20分鐘類型屬性行為狗昵稱健康值親密度品種輸出
17、信息企鵝昵稱健康值親密度性別輸出信息指導(dǎo)打印Dog信息2-1訓(xùn)練要點(diǎn):類的結(jié)構(gòu),對(duì)象的創(chuàng)建,類的屬性和方法的調(diào)用 類的封裝 需求說(shuō)明:根據(jù)控制臺(tái)提示信息選擇領(lǐng)養(yǎng)寵物(狗),輸入昵稱、品種、健康值打印寵物信息要保證健康值的有效性(在1到100之間)講解需求說(shuō)明指導(dǎo)打印Dog信息2-2實(shí)現(xiàn)思路:修改Dog類編寫Test類完成時(shí)間:30分鐘從控制臺(tái)輸入寵物信息打印寵物信息保證健康值的有效性,否則取默認(rèn)值60共性問(wèn)題集中講解常見調(diào)試問(wèn)題及解決辦法代碼規(guī)范問(wèn)題共性問(wèn)題集中講解練習(xí)Dog類的帶參構(gòu)造方法 需求說(shuō)明:增加帶參構(gòu)造方法將setHealth()方法設(shè)為私有,注釋掉其他setter方法修改Test類,使用帶參構(gòu)造方法創(chuàng)建對(duì)象完成時(shí)間:20分鐘Dog(String name, int health, int love, String strain)Penguin(String name, int heal
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北海康養(yǎng)職業(yè)學(xué)院《藥學(xué)學(xué)科概論》2023-2024學(xué)年第一學(xué)期期末試卷
- 福州黎明職業(yè)技術(shù)學(xué)院《乳品研究與開發(fā)》2023-2024學(xué)年第一學(xué)期期末試卷
- 安徽現(xiàn)代信息工程職業(yè)學(xué)院《行為矯正的原理與技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 湖南省瀏陽(yáng)一中、株洲二中等湘東七校2024-2025學(xué)年高三第二次質(zhì)檢化學(xué)試題含解析
- 廈門華天涉外職業(yè)技術(shù)學(xué)院《幼兒園教育活動(dòng)設(shè)計(jì)與實(shí)施三》2023-2024學(xué)年第二學(xué)期期末試卷
- 蘭考三農(nóng)職業(yè)學(xué)院《金融軟件應(yīng)用技術(shù)綜合實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)沙軌道交通職業(yè)學(xué)院《土質(zhì)學(xué)與土力學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 包頭鐵道職業(yè)技術(shù)學(xué)院《思維與語(yǔ)言能力訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 版臨床護(hù)理實(shí)踐指南
- 蓮花與中式浮雕
- MOOC 電路基礎(chǔ)-西北工業(yè)大學(xué) 中國(guó)大學(xué)慕課答案
- 《客艙安全與應(yīng)急處置》-課件:滅火設(shè)備:洗手間滅火系統(tǒng)及其他
- 銀發(fā)經(jīng)濟(jì)市場(chǎng)分析報(bào)告
- 眼部護(hù)理中醫(yī)知識(shí)培訓(xùn)課件
- 枕頸椎管椎間盤狹窄個(gè)案護(hù)理
- 快樂與人分享課件
- 養(yǎng)老托育服務(wù)發(fā)展分析報(bào)告
- 煤礦反三違培訓(xùn)課件
- 《家族職業(yè)樹》課件
- (完整版)A4作文格紙可直接打印使用
- 井控設(shè)備課件
評(píng)論
0/150
提交評(píng)論