版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
類與對(duì)象復(fù)習(xí)說(shuō)明類與對(duì)象的區(qū)別?舉例說(shuō)明什么是方法重載?Java中的構(gòu)造方法與實(shí)例方法,有什么區(qū)別?思考:對(duì)屬性進(jìn)行封裝用構(gòu)造方法實(shí)現(xiàn)對(duì)象成員的初始化對(duì)構(gòu)造方法進(jìn)行重載
要點(diǎn):理解封裝的概念掌握private關(guān)鍵字掌握構(gòu)造方法掌握方法重載目標(biāo):編寫(xiě)一個(gè)類,代表學(xué)生,要求:具有屬性:姓名、年齡具有行為:自我介紹學(xué)生的最小年齡要求18歲publicclassStudent1{publicStringname;//學(xué)生姓名publicintage;//年齡/***返回自我介紹的內(nèi)容*/publicStringintroduction(){return"大家好!我是"+name+",我今年"+age+"歲";}}編寫(xiě)一個(gè)測(cè)試類,要求:實(shí)例化一個(gè)學(xué)生對(duì)象,并對(duì)其初始化在控制臺(tái)輸出該學(xué)生的自我介紹publicclassStudent1Test{publicstaticvoidmain(String[]args){Student1s=newStudent1();="李芳";s.age=10;System.out.println(roduction());}}要滿足學(xué)生的最小年齡要求,可以通過(guò)對(duì)屬性的封裝來(lái)實(shí)現(xiàn)大家好!我是李芳,我今年10歲publicclassStudent2{privateStringname;//學(xué)生姓名//返回學(xué)生姓名publicStringgetName(){
returnname;}//設(shè)定學(xué)生姓名publicvoidsetName(Stringname){
=name;}}
封裝,就是隱藏實(shí)現(xiàn)細(xì)節(jié)將屬性私有化,提供公有方法訪問(wèn)私有屬性通過(guò)這些公有方法訪問(wèn)私有屬性Student2s=Student2();s.setName("李芳");StringsName=s.getName();通過(guò)setter、getter方法訪問(wèn)name屬性this代表當(dāng)前類的實(shí)例封裝的實(shí)現(xiàn):1、修改屬性的可見(jiàn)性來(lái)限制對(duì)屬性的訪問(wèn)2、為每個(gè)屬性創(chuàng)建一對(duì)賦值(setter)方法和取值(getter)方法,用于對(duì)這些屬性的訪問(wèn)3、在setter和getter方法中,加入對(duì)屬性的存取限制publicclassStudent3{privateStringname;//學(xué)生姓名privateintage;//年齡publicintgetAge(){ returnage;}publicvoidsetAge(intage){if(age<18){System.out.println("錯(cuò)誤!最小年齡應(yīng)為18歲!");this.age=18;//如果不符合年齡要求,則賦予默認(rèn)值}else{this.age=18;}}//此處省略對(duì)name屬性的setter、getter方法}123publicclassStudent3Test{publicstaticvoidmain(String[]args){ Student3s=newStudent3(); s.setName("李芳"); s.setAge(10); System.out.println(roduction());}}使用封裝,增加了數(shù)據(jù)訪問(wèn)限制,增強(qiáng)了程序的可維護(hù)性錯(cuò)誤!最小年齡應(yīng)為18歲!大家好!我是李芳,我今年18歲測(cè)試類通過(guò)調(diào)用setter方法,為對(duì)象的各個(gè)屬性賦值小結(jié)1使用private關(guān)鍵字修飾某個(gè)成員變量后,這個(gè)成員變量可以被同一包中的其它類訪問(wèn)嗎?在Java程序中,代碼封裝帶給我們的好處是什么?小結(jié)2請(qǐng)通過(guò)代碼封裝,實(shí)現(xiàn)如下需求:編寫(xiě)一個(gè)類Book,代表教材:具有屬性:名稱(title)、頁(yè)數(shù)(pageNum),其中頁(yè)數(shù)不能少于200頁(yè),否則輸出錯(cuò)誤信息,并賦予默認(rèn)值200為各屬性設(shè)置賦值和取值方法具有方法:detail,用來(lái)在控制臺(tái)輸出每本教材的名稱和頁(yè)數(shù)編寫(xiě)測(cè)試類BookTest進(jìn)行測(cè)試:為Book對(duì)象的屬性賦予初始值,并調(diào)用Book對(duì)象的detail方法,看看輸出是否正確classBook{ privateStringtitle; privateintpageNum; publicintgetPageNum(){ returnpageNum; } publicvoidsetPageNum(intpageNum){ if(pageNum<200){ System.out.println("頁(yè)數(shù)不能少于200頁(yè)!"); this.pageNum=200; }else this.pageNum=pageNum; } publicStringgetTitle(){ returntitle; } publicvoidsetTitle(Stringtitle){ this.title=title; } publicvoiddetail(){ System.out.println("書(shū)名:"+title+",頁(yè)數(shù):"+pageNum); }
}publicclassBookTest{ publicstaticvoidmain(Stringargs[]){ Bookb=newBook(); b.setTitle("Java快速入門(mén)"); b.setPageNum(109); b.detail(); }}開(kāi)發(fā)學(xué)生類Student4,要求:具有屬性:姓名、年齡、學(xué)歷、職位具有行為:自我介紹publicclassStudent4{privateStringname;//姓名privateintage;//年齡privateStringaddress;//家庭住址privateStringtelephone;//聯(lián)系方式publicStringintroduction(){return“大家好!我是”+name+“,我今年”+age+“歲,家庭住址“+address+”,聯(lián)系方式是"+telephone;}publicStringgetName(){ returnname;}publicvoidsetName(StringmyName){ name=myName;}//以下是其他屬性的setter、getter方法,此處省略}編寫(xiě)一個(gè)測(cè)試類,要求:實(shí)例化一個(gè)學(xué)生對(duì)象,并對(duì)其初始化在控制臺(tái)輸出該教員的自我介紹publicclassStudent4Test{publicstaticvoidmain(String[]args){Student4s=newStudent4();s.setName("李芳");s.setAge(23);s.setAddress(“大興…");System.out.println(roduction());}}要簡(jiǎn)化對(duì)象初始化的代碼,可以通過(guò)構(gòu)造方法來(lái)解決大家好!我是李芳,我今年23歲……….Student4中有太多的屬性及對(duì)應(yīng)的setter方法,在初始化時(shí),很容易就忘記了,有沒(méi)有可能簡(jiǎn)化對(duì)象初始化的代碼?構(gòu)造方法負(fù)責(zé)對(duì)象成員的初始化工作,為實(shí)例變量賦予合適的初始值構(gòu)造方法必須滿足以下語(yǔ)法規(guī)則:1、方法名與類名相同2、沒(méi)有返回類型publicclassStudent5{privateStringname;//學(xué)生姓名//構(gòu)造方法publicStudent5(){name="無(wú)名氏";}}publicStudent5Test{publicstaticvoidmain(String[]args){ Student5teacher=newStudent5();}}使用new關(guān)鍵字調(diào)用構(gòu)造方法通過(guò)帶參數(shù)的構(gòu)造方法,顯式地為實(shí)例變量賦予初始值publicclassStudent6{privateStringname;//學(xué)生姓名privateintage;//年齡privateStringaddress;//家庭住址privateStringtelephone;//聯(lián)系方式//帶參數(shù)的構(gòu)造方法publicStudent6(StringpName,intpAge,StringpAdddress,StringpTelephone){name=pName;age=pAge;//可以增加對(duì)age等屬性的存取限制條件education=pAddress;position=pTelephone;}publicStringintroduction(){return“大家好!我是”+name+“,我今年”+age+“歲,家庭住址是”
+address+“,聯(lián)系方式"+telephone;}}通過(guò)調(diào)用帶參數(shù)的構(gòu)造方法,簡(jiǎn)化對(duì)象初始化的代碼publicclassStudent6Test{publicstaticvoidmain(String[]args){Student6s=newStudent6("李芳",23,“大興”,);System.out.println(roduction());}}創(chuàng)建對(duì)象時(shí),一并完成了對(duì)象成員的初始化工作大家好!我是李芳,我今年23歲,……………小結(jié)3編寫(xiě)一個(gè)類Book2,代表教材:具有屬性:名稱(title)、頁(yè)數(shù)(pageNum),其中頁(yè)數(shù)不能少于200頁(yè),否則輸出錯(cuò)誤信息,并賦予默認(rèn)值200具有方法:detail,用來(lái)在控制臺(tái)輸出每本教材的名稱和頁(yè)數(shù)。具有帶參數(shù)的構(gòu)造方法:用來(lái)完成對(duì)象的初始化工作,并在構(gòu)造方法中完成對(duì)頁(yè)數(shù)的最小值限制編寫(xiě)測(cè)試類Book2Test進(jìn)行測(cè)試:初始化一個(gè)Book2對(duì)象,并調(diào)用該Book2對(duì)象的detail方法,看看輸出是否正確classBook2{ privateStringtitle; privateintpageNum; publicBook2(Stringtitle,intpageNum){ this.title=title; if(pageNum<200){ System.out.println("頁(yè)數(shù)不能少于200頁(yè)!"); this.pageNum=200; }else this.pageNum=pageNum; } publicvoiddetail(){ System.out.println(“書(shū)名:”+title+“,頁(yè)數(shù):"+pageNum); }
}publicclassBook2Test{ publicstaticvoidmain(String[]args){ Book2b=newBook2("Java入門(mén)",107); b.detail();
}}生活中的方法重載類方法方法參數(shù)方法實(shí)現(xiàn)司機(jī)轎車(chē)巴士火車(chē)駕駛啟動(dòng)、行駛、……等待乘客上車(chē)、啟動(dòng)、行駛、到站停車(chē)、……正點(diǎn)發(fā)車(chē)、行駛、到站停車(chē)、……如果用代碼實(shí)現(xiàn),我們需要三個(gè)方法,這些方法的方法名稱相同,參數(shù)類型不同方法重載并不陌生java.io.PrintStream類的println方法能夠打印數(shù)據(jù)并換行,根據(jù)數(shù)據(jù)類型的不同,有多種實(shí)現(xiàn)方式publicclassTest{publicstaticvoidmain(String[]args){inti=0;charc='z';Stringstr="hello";System.out.println(i);System.out.println(c);System.out.println(str);}}PrintStreamprintln(int)println(char)println(String)……方法名相同,參數(shù)類型不同調(diào)用不同的println方法方法重載java.lang.Math類的max()方法能夠從兩個(gè)數(shù)字中取出最大值,它有多種實(shí)現(xiàn)方式運(yùn)行時(shí),Java虛擬機(jī)先判斷給定參數(shù)的類型,然后決定到底執(zhí)行哪個(gè)max()方法Mathmax(inta,intb)max(floata,floatb)max(longa,longb)max(doublea,doubleb)publicclassTest{publicstaticvoidmain(String[]args){Math.max(1,2);Math.max(1.0F,2.F);Math.max(1.0,2);}}方法重載構(gòu)造方法重載是方法重載的典型示例publicclassStudent7{privateStringname;//學(xué)生姓名privateStringschool=“北京聯(lián)合大學(xué)";publicStudent7(Stringname){ =name;//設(shè)定學(xué)生姓名}publicStudent7(Stringname,Stringschool){=name;//設(shè)定學(xué)生姓名this.school=school;//設(shè)定學(xué)生所在學(xué)校}publicStringintroduction(){ return"大家好!我是"+school+"的"+name;}}構(gòu)造方法重載通過(guò)調(diào)用不同的構(gòu)造方法來(lái)表達(dá)對(duì)象的多種初始化行為例如:默認(rèn)情況下,學(xué)生來(lái)自北京聯(lián)合大學(xué),初始化時(shí),只需提供學(xué)生姓名有時(shí),需要提供所在學(xué)生來(lái)自學(xué)校及學(xué)生姓名publicclassStudent7Test{publicstaticvoidmain(String[]args){Student7s1=newStudent7("李芳");System.out.println(roduction());Student7s2=newStudent7("張欣",“北京工業(yè)大學(xué)");System.out.println(roduction());}}大家好!我是北京聯(lián)合大學(xué)的李芳大家好!我是北京工業(yè)大學(xué)的張欣小結(jié)4編寫(xiě)一個(gè)類Book3,代表教材:具有屬性:名稱(title)、頁(yè)數(shù)(pageNum)、種類(type)具有方法:detail,用來(lái)在控制臺(tái)輸出每本教材的名稱、頁(yè)數(shù)、種類具有兩個(gè)帶參構(gòu)造方法:第一個(gè)構(gòu)造方法中,設(shè)置教材種類為“計(jì)算機(jī)”(固定),其余屬性的值由參數(shù)給定;第二個(gè)構(gòu)造方法中,所有屬性的值都由參數(shù)給定編寫(xiě)測(cè)試類Book3Test進(jìn)行測(cè)試:分別以兩種方式完成對(duì)兩個(gè)Book3對(duì)象的初始化工作,并分別調(diào)用它們的detail方法,看看輸出是否正確classBook3{ privateStringtitle; privateintpageNum; privateStringtype; publicBook3(Stringtitle,intpageNum){ this.title=title; thi
溫馨提示
- 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識(shí)點(diǎn)及2025秋期末測(cè)試卷(附答案)-蘇少版(2024)初中美術(shù)七年級(jí)上學(xué)期
- (新教材)2026年滬科版七年級(jí)下冊(cè)數(shù)學(xué) 9.3 分式方程 課件
- 臀紅預(yù)防的日常護(hù)理要點(diǎn)
- 痔瘡患者的社交護(hù)理技巧
- 2025年辦公樓外墻施工安全責(zé)任合同協(xié)議
- 征求意見(jiàn)稿-醫(yī)療機(jī)構(gòu)開(kāi)展疫苗臨床試驗(yàn)?zāi)芰ㄔO(shè)規(guī)范
- 高危非致殘性缺血性腦血管事件復(fù)發(fā)風(fēng)險(xiǎn)評(píng)估和抗栓治療
- 《保護(hù)生物的多樣性》同步練習(xí)2
- 2025年農(nóng)產(chǎn)品加工企業(yè)發(fā)展策略
- 土壤微生物基因流
- 股權(quán)轉(zhuǎn)讓-個(gè)人所得稅自行納稅申報(bào)表(A表)
- DB15T 435-2020 公路風(fēng)吹雪雪害防治技術(shù)規(guī)程
- 備考2024四川省家庭教育指導(dǎo)師試題及答案三
- (正式版)CB∕T 4550-2024 船舶行業(yè)企業(yè)安全設(shè)備設(shè)施管理規(guī)定
- 全套管全回轉(zhuǎn)鉆機(jī)鉆孔咬合樁施工工藝
- 2024年春季學(xué)期中國(guó)文學(xué)基礎(chǔ)#期末綜合試卷-國(guó)開(kāi)(XJ)-參考資料
- 軍隊(duì)物資工程服務(wù)采購(gòu)產(chǎn)品分類目錄
- 《天文教學(xué)設(shè)計(jì)》教學(xué)設(shè)計(jì)
- 大學(xué)通用俄語(yǔ)1
- GB/T 24002.1-2023環(huán)境管理體系針對(duì)環(huán)境主題領(lǐng)域應(yīng)用GB/T 24001管理環(huán)境因素和應(yīng)對(duì)環(huán)境狀況的指南第1部分:通則
- GB/T 16938-2008緊固件螺栓、螺釘、螺柱和螺母通用技術(shù)條件
評(píng)論
0/150
提交評(píng)論