面向?qū)ο蟪绦蛟O(shè)計進階下_第1頁
面向?qū)ο蟪绦蛟O(shè)計進階下_第2頁
面向?qū)ο蟪绦蛟O(shè)計進階下_第3頁
面向?qū)ο蟪绦蛟O(shè)計進階下_第4頁
面向?qū)ο蟪绦蛟O(shè)計進階下_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

面向?qū)ο蟪绦蛟O(shè)計進階(下)單擊此處編輯副標題樣式版權(quán)聲明華清遠見教育集團;未經(jīng)華清遠見明確許可,不得為任何目的以任何形式復(fù)制或傳播此文檔的任何部分;本文檔包含的信息如有更改,恕不另行通知;華清遠見教育集團保留所有權(quán)利。目標掌握方法重載(Overload)理解掌握this關(guān)鍵字理解對象的構(gòu)造和初始化過程掌握封裝類的用法熟悉Java的自動裝箱和拆箱掌握==和equals()的用法及區(qū)別熟悉toString()方法熟悉可變參數(shù)的用法方法的重載同一個類中方法名相同時,稱為方法的重載(overload)

例如:publicvoidprintln(inti);publicvoidprintln(charc);publicvoidprintln(Strings);重載的方法必須有不同的參數(shù)列表參數(shù)類型不同參數(shù)個數(shù)不同構(gòu)造器的重載除了方法外,類的構(gòu)造器也可以實現(xiàn)重載類的構(gòu)造器可以相互調(diào)用,調(diào)用方式是使用this關(guān)鍵字來實現(xiàn)thisthis關(guān)鍵字構(gòu)造器中指該構(gòu)造器所創(chuàng)建的新對象方法中指調(diào)用該方法的對象this關(guān)鍵字的用法在類本身的方法或構(gòu)造器中引用該類的實例變量和方法將當前對象作為參數(shù)傳遞給其它方法或構(gòu)造器用來調(diào)用其他的重載的構(gòu)造器對象的構(gòu)造和初始化分析內(nèi)存分配,缺省的初始化進行實例變量的初始化如下遞歸的進行:1.設(shè)置實例變量的值為缺省的初始值2.調(diào)用對象的構(gòu)造器,綁定構(gòu)造器參數(shù)。3.如果構(gòu)造器中有this()調(diào)用,則根據(jù)this()調(diào)用的參數(shù)調(diào)用相應(yīng)的重載構(gòu)造器,然后,轉(zhuǎn)到步驟5;否則轉(zhuǎn)到步驟4。4.除java.lang.Object類外,調(diào)用父類的中的初始化塊初始化父類的屬性,然后調(diào)用父類構(gòu)造器,如果在構(gòu)造器中有super()調(diào)用,則根據(jù)super()中的參數(shù)調(diào)用父類中相應(yīng)的構(gòu)造器。5.使用初始化程序和初始化塊初始化成員。6.執(zhí)行構(gòu)造器方法體中其他語句。初始化塊它指的是類中的“游離塊”——不屬于變量聲明、不屬于方法、不屬于構(gòu)造器,但需要用{}單獨括起來不管使用哪個構(gòu)造器創(chuàng)建對象,它都會被首先運行,然后才是構(gòu)造器的主體部分被執(zhí)行對象初始化示例父類Person,子類Teacher初始化的三種情形調(diào)用父類的默認構(gòu)造器構(gòu)造器中使用了this()調(diào)用本類中重載的構(gòu)造器構(gòu)造器中使用了super()調(diào)用父類的構(gòu)造器public

classPerson{Stringname;Stringsex;intage; publicPerson(){ System.out.print("構(gòu)造器Person()被調(diào)用"); } publicPerson(StringtheName){System.out.print("構(gòu)造器Person(Stringname)被調(diào)用");name=theName;System.out.println("name="+name+",age="+"age"+"sex="+sex); }

publicPerson(StringtheName,inttheAge){System.out.print("構(gòu)造器Person(StringtheName,inttheAge)被調(diào)用");name=theName;age=theAge;System.out.println("name="+name+",age="+"age"+"sex="+sex);}{name="TonyBlair";age=50;sex="Female";System.out.println("\nPerson初始化塊執(zhí)行:name="+name+",age="+age+"sex="+sex);}}無參構(gòu)造器Person()一個參數(shù)的構(gòu)造器兩個參數(shù)的構(gòu)造器初始化塊public

classTeacherextendsPerson{Stringdepartment;intschoolAge;Teacher(){System.out.println("構(gòu)造器Teacher()被調(diào)用");}Teacher(Stringname){super(name);System.out.println("構(gòu)造器Teacher(Stringname)被調(diào)用");}Teacher(inttheSchoolAge){schoolAge=theSchoolAge;System.out.println("構(gòu)造器Teacher(inttheSchoolAge)被調(diào)用");}Teacher(StringtheDepartment,intschoolAge){this(schoolAge);department=theDepartment;System.out.println("構(gòu)造器Teacher(StringtheDepartment,intschoolAge)被調(diào)用");}{department="教務(wù)部";System.out.println("\nTeacher初始化塊執(zhí)行后:name="+name+",age="+age+",sex="+sex);}}調(diào)用父類構(gòu)造器調(diào)用本類重載的構(gòu)造器初始化塊public

classTestInit{public

static

voidmain(String[]args){Teachert1=newTeacher();System.out.println("--------------------------------");Teachert2=newTeacher("Tom");}}Person初始化塊執(zhí)行后:name=TonyBlair,age=50,sex=Female構(gòu)造器Person()被調(diào)用Teacher初始化塊執(zhí)行后:name=TonyBlair,age=50,sex=Female構(gòu)造器Teacher()被調(diào)用----------------------------------------------------------------Person初始化塊執(zhí)行后:name=TonyBlair,age=50,sex=Female構(gòu)造器Person(Stringname)被調(diào)用name=Tom,age=age,sex=FemaleTeacher初始化塊執(zhí)行后:name=Tom,age=50,sex=Female構(gòu)造器Teacher(Stringname)被調(diào)用封裝類對于簡單類型數(shù)據(jù),為了和Java面向?qū)ο蟮乃枷胍恢?,Java對它們進行了封裝,使它們都有相應(yīng)的封裝類簡單數(shù)據(jù)類型封裝類booleanBooleanbyteByteshortShortintIntegerlongLongcharCharacterfloatFloatdoubleDouble封裝類示例publicclassWrapperClass{ publicstaticvoidmain(String[]args){ Integeri=newInteger(10); Integerj=newInteger(10); System.out.println(i==j); }}1010ij自動裝箱/拆箱IntegeriObject=newInteger(100);IntegeriObject=100;非法!Jdk5.0以前合法,自動裝箱Jdk5.0中inti=newInteger(100);合法,自動拆箱Jdk5.0中將簡單類型數(shù)據(jù)自動轉(zhuǎn)換成對應(yīng)封裝類型將封裝類型自動轉(zhuǎn)換成對應(yīng)簡單類型自動裝箱/拆箱需要注意的地方:boolean類型的值所有byte類型的值在-128~127之間的short類型的值在-128~127之間的int類型的值在\u0000~\u007F之間的char類型的值注意上面范圍內(nèi)的數(shù)據(jù)的自動裝箱方式toString()方法在Object類中,定義了一個toString()方法,用于返回一個表示這個對象的字符串覆蓋該方法能用來提供某對象的自定義信息簡單類型使用它們的封裝類,可轉(zhuǎn)換成String==和equals()==和equals()都是用于相等型判斷的操作符==操作符用來判斷兩個引用是否指的同一個對象,或者兩個簡單類型的值是否相等Object類的equals()方法直接用==實現(xiàn)可按照自己的業(yè)務(wù)需要,覆蓋默認的equals()方法,在equals()方法中定義對象相等的含義String類就重寫了equals()方法,用來判

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論