資源描述:
《封裝、抽象和構(gòu)造方法》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、回顧類是具有相同屬性和行為的一組對象的集合,對象是類的實例類用Class來定義,類的變量和方法被該類的實例訪問,圓點符號用于訪問對象的成員用import來導(dǎo)入包1封裝信息隱藏,隱藏對象的實現(xiàn)細節(jié),不讓用戶看到將東西包裝在一起,然后以新的完整形式呈現(xiàn)出來例如,兩種或多種化學(xué)藥品組成一個膠囊將方法和屬性一起包裝到一個單元中,單元以類的形式實現(xiàn)“隱藏屬性、方法或?qū)崿F(xiàn)細節(jié)的過程稱為封裝?!?封裝的示例3-1接口采購經(jīng)理羅杰斯先生法拉力公司.迪斯尼汽車公司.市場經(jīng)理雪莉女士要求3封裝的示例3-2有選擇地提供數(shù)據(jù)法拉力公司迪斯尼汽車公司公共電話號碼電子郵箱
2、產(chǎn)品種類私有備件的制造方法備件庫存?zhèn)浼闹圃斐杀竟搽娫捥柎a電子郵箱汽車種類私有汽車的組裝方法汽車庫存汽車的組裝成本4封裝的示例3-3實體法拉力公司實體迪斯尼汽車公司AutiLtd.ButoLtd.屬性電話號碼電子郵箱產(chǎn)品種類現(xiàn)有存貨數(shù)量雇員詳情所需物料詳情屬性電話號碼電子郵箱汽車種類汽車規(guī)格雇員詳情庫存詳情經(jīng)銷商詳情方法接收訂單備件的制造方法計算備件的制造成本計算利潤率方法發(fā)出訂單汽車的組裝方法計算汽車的組裝成本計算工資發(fā)出訂單編制必要報告5抽象處理事物復(fù)雜性的方法只關(guān)注事物的重要細節(jié),而忽略事物的次要細節(jié)。6抽象的示例遞交報告速遞公司在回執(zhí)
3、確認上簽名返回回執(zhí)確認史密斯大夫?qū)蟾嫠屯康牡匕b并密封報告7數(shù)據(jù)抽象抽取出關(guān)鍵數(shù)據(jù)抽取出屬性和方法“根據(jù)具體的應(yīng)用抽取出類的相關(guān)關(guān)屬性和操作?!?數(shù)據(jù)抽象的示例屬性NameStudentNOSeatNumber方法getName()getStudentNO()Student類getSeatNumber()9this關(guān)鍵字用于任何實例方法內(nèi),指向當前對象this的值指向?qū)ζ湔{(diào)用當前方法的對象this關(guān)鍵字可在需要當前類類型的對象引用時使用10this關(guān)鍵字的示例classPixel{intx;inty;voidinit(intx,inty){
4、this.x=x;this.y=y;}publicstaticvoidmain(Stringargs[]){Pixelp=newPixel();p.init(4,3);}}此程序初始化x=4和y=3對象的引用11構(gòu)造方法每當創(chuàng)建給定類的實例時就調(diào)用的方法與類同名,但沒有返回類型Java為對象分配內(nèi)存,初始化實例變量并調(diào)用構(gòu)造方法兩種構(gòu)造方法參數(shù)化構(gòu)造方法隱式構(gòu)造方法12參數(shù)化構(gòu)造方法的示例classSdate{intmonth;intday;intyear;Sdate(intm,intd,inty){month=m;day=d;year=y;S
5、ystem.out.println(“日期是"+m+"/"+d+"/"+y+".");}publicstaticvoidmain(Stringargs[]){SdateS1,S2;S1=newSdate(11,27,1969);S2=newSdate(3,3,1973);}}參數(shù)化構(gòu)造方法13隱式構(gòu)造方法的示例classSdate{intmonth;intday;intyear;publicstaticvoidmain(Stringargs[]){SdateS1;S1=newSdate();}}隱式構(gòu)造方法14示例的構(gòu)造方法演示:示例1publ
6、icstaticvoidmain(String[]args){BookobjBook=newBook("CoreJava","Albert",45,true);UserobjUser=newUser();objUser.getBookStatus(objBook);}Book(Stringbook,Stringauthor,intpages,booleanstatus){bookName=book;authorName=author;nopages=pages;available=status;}voidgetBookStatus(Bookob
7、jBook){objBook.isAvailable();}15包包允許將類組合成較小的單元(類似文件夾),使其易于找到和使用相應(yīng)的類文件有助于避免命名沖突。在使用許多類時,類和方法的名稱很難決定。有時需要使用與其他類相同的名稱。包基本上隱藏了類并避免了名稱上的沖突包允許在更廣的范圍內(nèi)保護類、數(shù)據(jù)和方法,可以在包內(nèi)定義類,而在包外的代碼不能訪問該類“包將類名空間劃分為更加容易管理的塊,包既是命名機制也是可見度控制機制”16創(chuàng)建包packagemypackage;publicclassCalculate{publicdoublevolume(do
8、ubleheight,doublewidth,doubledepth){……}……}聲明包17總結(jié)封裝是隱藏對象實現(xiàn)細節(jié)的過程,以便不讓用戶看到構(gòu)造函