版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、2022-6-3威迅教育開發(fā)部監(jiān)制面向?qū)ο蟾拍?public class Test public static void main(String args) for(int i=0;i10;i+) System.out.println(i); System.out.println(i=10); 請舉例說明類與對(duì)象的區(qū)別與聯(lián)系。請舉例說明類與對(duì)象的區(qū)別與聯(lián)系。超出了變量超出了變量i的的訪問范圍訪問范圍請指出下列請指出下列Java代碼中存在的錯(cuò)誤,并改正。代碼中存在的錯(cuò)誤,并改正。理解封裝的概念掌握private關(guān)鍵字掌握構(gòu)造方法掌握方法重載OOP旨在在計(jì)算機(jī)程序中模擬現(xiàn)實(shí)世界中的概念在 OOP
2、中,現(xiàn)實(shí)世界的所有事物全都被視為對(duì)象能夠在計(jì)算機(jī)程序中用類似的實(shí)體模擬現(xiàn)實(shí)世界中的實(shí)體設(shè)計(jì)和實(shí)現(xiàn)軟件系統(tǒng)的方法對(duì)對(duì) 象象面向?qū)ο缶幊痰暮诵臑橛?jì)算機(jī)應(yīng)用程序提供實(shí)用基礎(chǔ)完成特定任務(wù)表示現(xiàn)實(shí)世界中的實(shí)體“對(duì)象是存在的具體實(shí)體,具有明確定義的狀態(tài)和行為。對(duì)象是存在的具體實(shí)體,具有明確定義的狀態(tài)和行為?!笔浙y員對(duì)象顧客對(duì)象顧客姓名:朱麗葉年齡:28體重:52千克操作:購買商品狀態(tài)狀態(tài)姓名:布蘭尼職銜:收銀員年齡:35體重:60千克操作:收款打印帳單行為行為“消息指一個(gè)對(duì)象為執(zhí)行某項(xiàng)特定操作而向另一個(gè)消息指一個(gè)對(duì)象為執(zhí)行某項(xiàng)特定操作而向另一個(gè)對(duì)象發(fā)送的請求對(duì)象發(fā)送的請求”消息傳遞消息傳遞當(dāng)需要執(zhí)行一項(xiàng)特
3、定操作時(shí),通過向已為其定義此項(xiàng)操作的對(duì)象發(fā)送消息來請求對(duì)象之間通過傳遞消息實(shí)現(xiàn)相互通信類以共同特性和操作定義實(shí)體類是用于組合各個(gè)對(duì)象所共有操作和屬性的一種機(jī)制形狀類形狀類動(dòng)物類動(dòng)物類汽車類汽車類類的示例類的示例“類是具有相同屬性和行為的一組對(duì)象的集合類是具有相同屬性和行為的一組對(duì)象的集合”雇員雇員收銀員系統(tǒng)管理員倉庫管理員促銷員采購經(jīng)理事物的特性在類中表示為變量每個(gè)對(duì)象的每個(gè)屬性都擁有其特有的值屬性名稱由類的所有實(shí)例共享住址住址姓名姓名屬性屬性年齡年齡“在類中表示對(duì)象或?qū)嶓w擁有的特性時(shí)稱為屬性在類中表示對(duì)象或?qū)嶓w擁有的特性時(shí)稱為屬性 ”促銷員對(duì)象促銷員對(duì)象方法方法操作的實(shí)際實(shí)現(xiàn)如何執(zhí)行所請求的
4、操作的規(guī)范方法指定操作對(duì)象數(shù)據(jù)的方式在得到操作請求時(shí)指定如何做的算法“對(duì)象執(zhí)行的操作稱為方法。對(duì)象執(zhí)行的操作稱為方法?!笨p衣服的步驟縫衣服的步驟量尺寸量尺寸得到工具得到工具縫衣服縫衣服方法方法縫制衣服裁縫 類是概念模型, 定義對(duì)象的所 有特性和所需 的操作對(duì)象是真實(shí)的模型類和對(duì)象類定義實(shí)體對(duì)象是實(shí)際的實(shí)體類是對(duì)象的原型類是對(duì)象的原型所有屬于同一個(gè)類所有屬于同一個(gè)類的對(duì)象都具有相同的對(duì)象都具有相同的特性和操作的特性和操作信息隱藏,隱藏對(duì)象的實(shí)現(xiàn)細(xì)節(jié),不讓用戶看到將東西包裝在一起,然后以新的完整形式呈現(xiàn)出來 例如,兩種或多種化學(xué)藥品組成一個(gè)膠囊 將方法和屬性一起包裝到一個(gè)單元中,單元以類的形式實(shí)現(xiàn)
5、“隱藏屬性、方法或?qū)崿F(xiàn)細(xì)節(jié)的過程稱為封裝。隱藏屬性、方法或?qū)崿F(xiàn)細(xì)節(jié)的過程稱為封裝?!苯涌?采購經(jīng)理羅杰斯先生法拉力公司.迪斯尼汽車公司.市場經(jīng)理雪莉女士 要求 有選擇地提供數(shù)據(jù)法拉力公司迪斯尼汽車公司公共電話號(hào)碼電子郵箱產(chǎn)品種類私有備件的制造方法備件庫存?zhèn)浼闹圃斐杀竟搽娫捥?hào)碼電子郵箱汽車種類私有汽車的組裝方法汽車庫存汽車的組裝成本實(shí)體法拉力公司實(shí)體迪斯尼汽車公司 Auti Ltd.Buto Ltd.屬性電話號(hào)碼電子郵箱產(chǎn)品種類現(xiàn)有存貨數(shù)量雇員詳情所需物料詳情屬性電話號(hào)碼電子郵箱汽車種類汽車規(guī)格雇員詳情庫存詳情經(jīng)銷商詳情方法接收訂單備件的制造方法計(jì)算備件的制造成本計(jì)算利潤率方法發(fā)出訂單汽車的
6、組裝方法計(jì)算汽車的組裝成本計(jì)算工資發(fā)出訂單編制必要報(bào)告編寫一個(gè)類,代表教員,要求: 具有屬性:姓名、年齡 具有行為:自我介紹 教員的最小年齡要求:22歲public class Teacher1public String name; / 教員姓名教員姓名public int age; /年齡年齡/* * 返回自我介紹的內(nèi)容返回自我介紹的內(nèi)容 */public String introduction() return 大家好!我是大家好!我是 + name + ,我今年我今年+ age+歲歲;編寫一個(gè)測試類,要求: 實(shí)例化一個(gè)教員對(duì)象,并對(duì)其初始化 在控制臺(tái)輸出該教員的自我介紹public cl
7、ass Teacher1Test public static void main(String args) Teacher1 teacher = new Teacher1(); = 李芳李芳;teacher.age =10;System.out.println(roduction(); 要滿足教員的最小年齡要求,可以通過對(duì)屬性的封裝來實(shí)現(xiàn)要滿足教員的最小年齡要求,可以通過對(duì)屬性的封裝來實(shí)現(xiàn)大家好!我是李芳,我今年大家好!我是李芳,我今年1010歲歲封裝,就是隱藏實(shí)現(xiàn)細(xì)節(jié)將屬性私有化,提供公有方法訪問私有屬性通過這些公有方法訪問私有屬性 public
8、 class Teacher2 private String name; / 教員姓名教員姓名/ 返回教員姓名返回教員姓名public String getName() return name;/ 設(shè)定教員姓名設(shè)定教員姓名public void setName(String name) = name;Teacher2 teacher = new Teacher2();teacher.setName (李芳李芳);String tName = teacher.getName();通過通過setter、getter方法方法訪問訪問name屬性屬性this代表當(dāng)前類的實(shí)例代表當(dāng)前
9、類的實(shí)例封裝的實(shí)現(xiàn):1、修改屬性的可見性來限制對(duì)屬性的訪問2、為每個(gè)屬性創(chuàng)建一對(duì)賦值(setter)方法和取值(getter) 方法,用于對(duì)這些屬性的訪問3、在setter和getter方法中,加入對(duì)屬性的存取限制public class Teacher3 private String name; / 教員姓名教員姓名private int age; /年齡年齡public int getAge() return age;public void setAge(int age) if (age22) System.out.println(錯(cuò)誤!最小年齡應(yīng)為錯(cuò)誤!最小年齡應(yīng)為22歲!歲!);thi
10、s.age = 22; /如果不符合年齡要求,則賦予默認(rèn)值如果不符合年齡要求,則賦予默認(rèn)值 else this.age = age; /此處省略對(duì)此處省略對(duì)name屬性的屬性的setter、getter方法方法123public class Teacher3Test public static void main(String args) Teacher3 teacher = new Teacher3();teacher.setName (李芳李芳);teacher.setAge(10);System.out.println(roduction();使用封裝,增加了數(shù)據(jù)訪
11、問限制,增強(qiáng)了程序的可維護(hù)性使用封裝,增加了數(shù)據(jù)訪問限制,增強(qiáng)了程序的可維護(hù)性 錯(cuò)誤!最小年齡應(yīng)為錯(cuò)誤!最小年齡應(yīng)為22歲!歲!大家好!我是李芳,我今年大家好!我是李芳,我今年22歲歲測試類通過調(diào)用setter方法,為對(duì)象的各個(gè)屬性賦值使用private關(guān)鍵字修飾某個(gè)成員變量后,這個(gè)成員變量可以被同一包中的其它類訪問嗎?在Java程序中,代碼封裝帶給我們的好處是什么?請通過代碼封裝,實(shí)現(xiàn)如下需求:編寫一個(gè)類Book,代表教材:具有屬性:名稱(具有屬性:名稱(title)、頁數(shù)()、頁數(shù)(pageNum),其中頁數(shù)不),其中頁數(shù)不能少于能少于200頁,否則輸出錯(cuò)誤信息,并賦予默認(rèn)值頁,否則輸出錯(cuò)
12、誤信息,并賦予默認(rèn)值200為各屬性設(shè)置賦值和取值方法為各屬性設(shè)置賦值和取值方法具有方法具有方法:detail,用來在控制臺(tái)輸出每本教材的名稱和頁數(shù),用來在控制臺(tái)輸出每本教材的名稱和頁數(shù)編寫測試類BookTest進(jìn)行測試:為Book對(duì)象的屬性賦予初始值,并調(diào)用Book對(duì)象的detail方法,看看輸出是否正確開發(fā)教員類ATeacher4,要求: 具有屬性:姓名、年齡、學(xué)歷、職位 具有行為:自我介紹public class Teacher4 private String name; / 姓名姓名private int age; / 年齡年齡private String education; / 學(xué)歷
13、學(xué)歷private String position; / 職位職位public String introduction() return 大家好!我是大家好!我是 + name + ,我今年,我今年” + age + 歲,學(xué)歷歲,學(xué)歷“ +education+,目前職位是,目前職位是+position;public String getName() return name;public void setName(String myName) name = myName;/ 以下是其他屬性的以下是其他屬性的setter、getter方法,此處省略方法,此處省略編寫一個(gè)測試類,要求: 實(shí)例化一個(gè)教
14、員對(duì)象,并對(duì)其初始化 在控制臺(tái)輸出該教員的自我介紹public class Teacher4Test public static void main(String args) Teacher4 teacher = new Teacher4();teacher.setName(李芳李芳);teacher.setAge(23);teacher.setEducation(本科本科);System.out.println(roduction();要簡化對(duì)象初始化的代碼,可以通過構(gòu)造方法來解決要簡化對(duì)象初始化的代碼,可以通過構(gòu)造方法來解決 大家好!我是李芳大家好!我是李芳,我今年我
15、今年23歲,學(xué)歷本科,目前職位是歲,學(xué)歷本科,目前職位是nullAccpTeacher4中有太多中有太多的屬性及對(duì)應(yīng)的的屬性及對(duì)應(yīng)的setter方方法,在初始化時(shí),很容易法,在初始化時(shí),很容易就忘記了,有沒有可能簡就忘記了,有沒有可能簡化對(duì)象初始化的代碼?化對(duì)象初始化的代碼?構(gòu)造方法負(fù)責(zé)對(duì)象成員的初始化工作,為實(shí)例變量賦予合適的初始值構(gòu)造方法必須滿足以下語法規(guī)則:1、方法名與類名相同2、沒有返回類型public class Teacher5 private String name; / 教員姓名教員姓名/ 構(gòu)造方法構(gòu)造方法public Teacher5() name = 無名氏無名氏;publ
16、ic class Teacher5Test public static void main(String args) Teacher5 teacher = new Teacher5(); 使用new關(guān)鍵字調(diào)用構(gòu)造方法通過帶參數(shù)的構(gòu)造方法,顯式地為實(shí)例變量賦予初始值 public class Teacher6 private String name; / 教員姓名教員姓名private int age; / 年齡年齡private String education; / 學(xué)歷學(xué)歷private String position; / 職位職位/ 帶參數(shù)的構(gòu)造方法帶參數(shù)的構(gòu)造方法public Tea
17、cher6(String pName,int pAge,String pEducation,String pPosition) name = pName;age = pAge; / 可以增加對(duì)可以增加對(duì)age等屬性的存取限制條件等屬性的存取限制條件education = pEducation;position = pPosition;public String introduction() return 大家好!我是大家好!我是 + name + ,我今年,我今年 + age + 歲,學(xué)歷歲,學(xué)歷 + education + ,目前職位是目前職位是+position;通過調(diào)用帶參數(shù)的構(gòu)造方法,
18、簡化對(duì)象初始化的代碼public class Teacher6Test public static void main(String args) Teacher6 teacher = new Teacher6(李芳李芳, 23, 本科本科, 咨詢師咨詢師);System.out.println(roduction();創(chuàng)建對(duì)象時(shí),一并完成了對(duì)創(chuàng)建對(duì)象時(shí),一并完成了對(duì)象成員的初始化工作象成員的初始化工作大家好!我是李芳大家好!我是李芳,我今年我今年23歲,學(xué)歷本科,目前職位是咨詢師歲,學(xué)歷本科,目前職位是咨詢師編寫一個(gè)類Book2,代表教材: 具有屬性:名稱(具有屬性:名稱
19、(title)、頁數(shù)()、頁數(shù)(pageNum),其),其中頁數(shù)不能少于中頁數(shù)不能少于200頁,否則輸出錯(cuò)誤信息,并賦予頁,否則輸出錯(cuò)誤信息,并賦予默認(rèn)值默認(rèn)值200 具有方法:具有方法: detail,用來在控制臺(tái)輸出每本教材的名,用來在控制臺(tái)輸出每本教材的名稱和頁數(shù)。稱和頁數(shù)。 具有帶參數(shù)的構(gòu)造方法:用來完成對(duì)象的初始化工具有帶參數(shù)的構(gòu)造方法:用來完成對(duì)象的初始化工作,并在構(gòu)造方法中完成對(duì)頁數(shù)的最小值限制作,并在構(gòu)造方法中完成對(duì)頁數(shù)的最小值限制編寫測試類Book2Test進(jìn)行測試:初始化一個(gè)Book2對(duì)象,并調(diào)用該Book2對(duì)象的detail方法,看看輸出是否正確方法重載并不陌生java.
20、io.PrintStream類的println方法能夠打印數(shù)據(jù)并換行,根據(jù)數(shù)據(jù)類型的不同,有多種實(shí)現(xiàn)方式public class Test public static void main(String args) int i = 0;char c = z;String str = hello;System.out.println(i);System.out.println(c);System.out.println(str);PrintStreamprintln(int)println(char)println(String)方法名相同,參數(shù)類型不同方法名相同,參數(shù)類型不同調(diào)用不同的調(diào)用不同的
21、println方法方法方法重載方法重載java.lang.Math類的max()方法能夠從兩個(gè)數(shù)字中取出最大值,它有多種實(shí)現(xiàn)方式運(yùn)行時(shí),Java虛擬機(jī)先判斷給定參數(shù)的類型,然后決定到底執(zhí)行哪個(gè)max()方法Mathmax(int a,int b)max(float a,float b)max(long a,long b)max(double a,double b)public class Test public static void main(String args) Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);方法重載方法重載構(gòu)造方法重
22、載是方法重載的典型示例public class Teacher7 private String name; / 教員姓名教員姓名private String school = 北京中心北京中心; / 所在中心所在中心public Teacher7(String name) = name; /設(shè)定教員姓名設(shè)定教員姓名public Teacher7(String name, String school) = name; /設(shè)定教員姓名設(shè)定教員姓名this.school = school; /設(shè)定教員的所在中心設(shè)定教員的所在中心public String introduction() return 大家好!我是大家好!我是 + school + 的的 + name ;構(gòu)造方法重載構(gòu)造方法重載通過調(diào)用不同的構(gòu)造方法來表達(dá)對(duì)象的多種初始化行為例如: 默認(rèn)情況下,教師來自北京中心,初始化時(shí),只需提供教員姓名 有時(shí),需要提供所在中心名稱及教員姓名public class Teacher7Test public static void main(String args) Teacher7 teacher1 = new Teacher7(李芳李芳);System.out.p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《評(píng)價(jià)我們的太陽能熱水器》說課稿
- xx區(qū)老舊廠區(qū)改造項(xiàng)目可行性研究報(bào)告
- 2024年度地坪漆施工項(xiàng)目合同解除及違約責(zé)任協(xié)議3篇
- 2024年原木林業(yè)碳匯項(xiàng)目碳排放權(quán)銷售合同范本3篇
- 老舊廠區(qū)改造項(xiàng)目可行性研究報(bào)告
- 2025年全國名校模考作文:“事不自見耳聞不可臆斷其有無”
- 移動(dòng)軸課程設(shè)計(jì)
- 電大新課程設(shè)計(jì)
- 2024年片石生產(chǎn)加工基地建設(shè)合作協(xié)議書3篇
- 汽車選購保養(yǎng)課程設(shè)計(jì)
- 時(shí)花養(yǎng)護(hù)服務(wù)投標(biāo)方案
- 24春國家開放大學(xué)《教育心理學(xué)》終結(jié)性考核參考答案
- 語言學(xué)綱要(學(xué)習(xí)指導(dǎo)修訂版)
- (2024年)常見傳染病診斷國家標(biāo)準(zhǔn)培訓(xùn)(完整版)
- 教學(xué)課件-思想政治教育心理學(xué)-楊芷英
- 浙江省杭州市蕭山區(qū)2023-2024學(xué)年五年級(jí)上學(xué)期期末英語試卷
- 2024年高考語文復(fù)習(xí):報(bào)告文學(xué)閱讀 專項(xiàng)練習(xí)題(含答案)
- 可研報(bào)告軟件
- 陜西藍(lán)深特種樹脂有限公司年產(chǎn)2000噸大孔吸附樹脂生產(chǎn)項(xiàng)目環(huán)境影響報(bào)告
- 《肌力評(píng)估》課件
- 國家電網(wǎng)招聘之公共與行業(yè)知識(shí)題庫及完整答案(網(wǎng)校專用)
評(píng)論
0/150
提交評(píng)論