使用java實現(xiàn)面向?qū)ο缶幊蘴p_第1頁
使用java實現(xiàn)面向?qū)ο缶幊蘴p_第2頁
使用java實現(xiàn)面向?qū)ο缶幊蘴p_第3頁
使用java實現(xiàn)面向?qū)ο缶幊蘴p_第4頁
使用java實現(xiàn)面向?qū)ο缶幊蘴p_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、抽象和封裝第一章課程地位每階段已包括:項目實戰(zhàn)、COT課程 總課時: 1008C#OOPJavaScriptT-SQLJava OOPS2350Y2344JSPS2:Java階段項目預(yù)備課程WinFormsLogic JavaS1314S1:.NET階段項目 HibernateN-TierAjaxSpringStrutsHTMLC#NTCProject知識Y2:.NET畢業(yè)設(shè)計項目COTCOTCOTY2:Java畢業(yè)設(shè)計項目目標(biāo)崗位標(biāo)準(zhǔn)手冊就業(yè)技能結(jié)構(gòu)圖本門課程目標(biāo)學(xué)完本門課程后,你能夠:使用Java編寫面向?qū)ο蟮某绦蚴褂眉洗嫒ο笫褂肑ava異常處理編寫程序使用JDBC操作數(shù)據(jù)庫使用Jav

2、a操作XML文件使用Oracle進行簡單的數(shù)據(jù)操作課程項目展示電子寵物系統(tǒng)主人登錄領(lǐng)養(yǎng)寵物給寵物喂食與寵物游戲給寵物看病顯示主人信息顯示寵物信息 現(xiàn)場演示貫穿案例相關(guān)課程回顧什么是類,什么是對象?如何在類中編寫方法?如何創(chuàng)建對象?如何在程序中接收控制臺的輸入?預(yù)習(xí)檢查如何從現(xiàn)實世界中抽象出類?構(gòu)造方法的作用和特點是什么?什么是方法重載?如何實現(xiàn)類的封裝?本章任務(wù)用類圖描述電子寵物系統(tǒng)的設(shè)計編寫代碼實現(xiàn)領(lǐng)養(yǎng)寵物功能 使用類圖描述設(shè)計掌握面向?qū)ο笤O(shè)計基本步驟掌握類和對象的概念掌握構(gòu)造方法及其重載掌握封裝的概念及其使用本章目標(biāo)為什么使用面向?qū)ο?-1現(xiàn)實世界是由什么組成的? 世界由對象組成 為什么使

3、用面向?qū)ο?-2軟件出現(xiàn)的目的是為了:用計算機的語言描述現(xiàn)實世界用計算機解決現(xiàn)實世界的問題出現(xiàn)了軟件危機,如何解決? 用面向?qū)ο蟮姆绞矫枋鰧ο蟮氖澜?符合人類思維習(xí)慣 “問題”和“解”一致 一個現(xiàn)實世界的問題 寵物現(xiàn)實世界的對象如何在計算機中描述它?從現(xiàn)實中抽象出類分三步: 1. 找出它的種類 2. 找出它的屬性 3. 找出它的行為 用面向?qū)ο竺枋鍪澜?-1用面向?qū)ο蟮乃枷朊枋鍪澜绲谝徊剑喊l(fā)現(xiàn)類 根據(jù)“對象”抽象出“類” class Dog 名詞 各個狗對象 用面向?qū)ο竺枋鍪澜?-2第二步:發(fā)現(xiàn)類的屬性 狗類共有的特征: 1. 品種2. 年齡3. 昵稱4. 健康情況5. 跟主人的親密度 cla

4、ss Dog String name = 旺財; / 昵稱 int health = 100; / 健康值 int love = 0; / 親密度 String strain = 拉布拉多犬; / 品種 只放我關(guān)心的屬性名詞用面向?qū)ο竺枋鍪澜?-3第三步:發(fā)現(xiàn)類的方法 狗類共有的行為: 1. 跑2. 吠3. 輸出狗的信息 動詞class Dog String name = 旺財; / 昵稱 int health = 100; / 健康值 int love = 0; / 親密度 String strain = 拉布拉多犬; / 品種 /* 輸出狗的信息 */ public void print(

5、) / 輸出狗信息的代碼 只放我關(guān)心的方法類圖使用類圖描述類用于分析和設(shè)計“類”直觀、容易理解+ name:String+ health:int+ love:int+ strain:StringDog+ print( ) : void“+”:public“-”:private類名返回值類型類型屬性名參數(shù):名字:類型,名字:類型方法名小結(jié)面向?qū)ο笤O(shè)計的過程是什么?抽象的原則是什么?為什么說類圖是面向?qū)ο笤O(shè)計的好工具?實現(xiàn)領(lǐng)養(yǎng)寵物實現(xiàn)領(lǐng)養(yǎng)寵物功能編寫寵物類Dog和Penguin創(chuàng)建寵物對象,輸入寵物信息,最后輸出演示示例:領(lǐng)養(yǎng)寵物功能構(gòu)造方法 3-1對象初始化Penguin pgn = new P

6、enguin(); = qq;pgn.sex = Q仔; class Penguin / 屬性 /* 無參構(gòu)造方法 */ public Penguin() name = qq; love = 20; sex = Q仔; System.out.println(執(zhí)行構(gòu)造方法); 使用構(gòu)造方法:Penguin pgn1 = new Penguin(); 能否在創(chuàng)建對象的同時就完成賦值?構(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閱讀代碼,說出運行結(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)造方法 常見錯誤請指出下面代碼的錯誤class Do

8、g private String name = 旺財; / 昵稱 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可以用來修飾屬性、方法和代碼塊

9、static修飾的屬性和方法稱為類屬性(類變量)、類方法不使用static修飾的屬性和方法,屬于單個對象,通常稱為實例屬性(實例變量)、實例方法static修飾的變量和方法可以通過類名和對象名訪問,而不用static修飾的變量和方法只能通過對象名訪問final可以用來修飾屬性、方法和類用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中定義常量的語法static void print() 用類名調(diào)用:Dog.print(); 使用static定義變量 使用static定義方法 演示示例:靜態(tài)常量可否這樣賦值?常見錯誤請指出下面代碼的錯誤class Dog private String name = 旺財; / 昵稱 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òu)造方法?方法重載,指同一個類中多個方法:方法名相同參數(shù)列表不同與返回值、訪問修飾符無關(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 為什么要使用封裝 下面代碼有什么問題?如何解決上面設(shè)計的缺陷?Dog d = new Dog();d.health = 1000; 不合理的賦值 使用封裝 什么是封裝面向?qū)ο笕筇卣髦环庋b封裝的概念封裝的好處封裝:將類的某些信息隱藏在類內(nèi)部,不允許外部程序直接訪問,而是通過該類提供的方法來實現(xiàn)對隱藏信息的操作和訪問 隱藏類的實現(xiàn)細(xì)節(jié)只能通過規(guī)定方法訪問數(shù)據(jù)方便加入控制語句方便修改實現(xiàn)如何使用封裝封裝的步驟 修改屬性的可見性 創(chuàng)建getter/setter方法 在getter/setter方法中加入屬性控制語句

13、 設(shè)為private用于屬性的讀寫 對屬性值的合法性進行判斷 class Dog private String name = 旺財; / 昵稱 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)前對象 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、一條語句 this(小黑,100,100,雄);小結(jié)分析需求,用封裝方式設(shè)計類,畫出類圖汽車銷售人員銷售汽車,可售款式有凱越、君威每款汽車有款式和編號,款式、編號不能修改汽車銷售人員有姓名,姓名不能修改銷售人員有兩種銷售方式:按車輛銷售,每次一輛按車型銷售(凱越),要同時告訴銷售人員購買數(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è)計Dog和Penguin類 需求說明:運用面向?qū)ο笏枷氤橄蟪鯠og類和Penguin類,畫出對應(yīng)類圖根據(jù)類圖編寫Dog類和Penguin類添加默認(rèn)構(gòu)造方法完成時間:20分鐘類型屬性行為狗昵稱健康值親密度品種輸出

17、信息企鵝昵稱健康值親密度性別輸出信息指導(dǎo)打印Dog信息2-1訓(xùn)練要點:類的結(jié)構(gòu),對象的創(chuàng)建,類的屬性和方法的調(diào)用 類的封裝 需求說明:根據(jù)控制臺提示信息選擇領(lǐng)養(yǎng)寵物(狗),輸入昵稱、品種、健康值打印寵物信息要保證健康值的有效性(在1到100之間)講解需求說明指導(dǎo)打印Dog信息2-2實現(xiàn)思路:修改Dog類編寫Test類完成時間:30分鐘從控制臺輸入寵物信息打印寵物信息保證健康值的有效性,否則取默認(rèn)值60共性問題集中講解常見調(diào)試問題及解決辦法代碼規(guī)范問題共性問題集中講解練習(xí)Dog類的帶參構(gòu)造方法 需求說明:增加帶參構(gòu)造方法將setHealth()方法設(shè)為私有,注釋掉其他setter方法修改Test類,使用帶參構(gòu)造方法創(chuàng)建對象完成時間:20分鐘Dog(String name, int health, int love, String strain)Penguin(String name, int heal

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論