資源描述:
《java中的類與接口》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第三章Java中的類與接口教授:郭磊【本章導(dǎo)讀】Java語言其中一個突出特點就是面向?qū)ο?。所謂面向?qū)ο蟮姆椒▽W(xué),就是使我們分析、設(shè)計和實現(xiàn)一個系統(tǒng)的方法盡可能地接近我們認識一個系統(tǒng)的方法。包括:面向?qū)ο蟮姆治觯∣OA,Object-OrientedAnalysis),面向?qū)ο蟮脑O(shè)計(OOD,Object-OrientedDesign),面向?qū)ο蟮某绦蛟O(shè)計(OOP,Object-OrientedProgram)。本章主要介紹面向?qū)ο蟮幕靖拍?,包括類與對象、抽象類、內(nèi)部類、匿名類、接口和包等。目的是為以后的Jav
2、a面向?qū)ο蟮木幊檀蚝没A(chǔ)?!颈菊乱c】類與對象抽象類內(nèi)部類匿名類接口包3.1類與對象3.1.1類的聲明1、類的聲明格式:<類首聲明>{<類主體>}類首聲明定義類的名字、訪問權(quán)限以及與其它類的關(guān)系等。類主體定義類的成員,包括變量(數(shù)據(jù))和方法(行為)3.1類與對象3.1.2類首聲明:[<修飾符>]class<類名>[extends<超類名>][implements<接口名>]class:類定義的關(guān)鍵字;extends:表示類和另外一些類(超類)的繼承關(guān)系;implements:表示類實現(xiàn)了某些接口;修飾符:表示類
3、訪問權(quán)限(public)和類型說明(abstract、final);3.1類與對象3.1.3成員變量的聲明格式:[<修飾符>][static][final]<變量類型><變量名>static:表示是一個類成員變量(靜態(tài)變量);final:表示是一個常量;例:finaldoublePI=3.1415926;修飾符:表示變量的訪問權(quán)限(缺省訪問friendly、public、protected和private)作用域:整個類。同一類中的所有方法都可以對其訪問。并可簡單地通過名字來引用。(在方法體內(nèi)定義的變量是局部變
4、量,作用域只能在方法體內(nèi))3.1類與對象3.1.3成員方法方法的定義包括兩部分:方法聲明和方法體。一般格式為:方法聲明部分{方法體的內(nèi)容}3.1類與對象3.1.4對象的創(chuàng)建與引用1、對象的創(chuàng)建創(chuàng)建一個對象包括對象的聲明和為對象分配成員變量兩個步驟。(1)對象的聲明對象聲明的一般格式為:類的名字對象名字;如:RectrectangleOne;這里,Rect是一個類的名字,rectangleOne是我們聲明的對象的名字。用類聲明的數(shù)據(jù)稱為類類型變量,即對象,如上述Rect類聲明的對象rectangleOne。3.1
5、類與對象1、對象的創(chuàng)建(2)為聲明的對象分配成員變量為聲明的對象分配成員變量,即是給變量分配內(nèi)存空間。使用new運算符和類的構(gòu)造方法為聲明的對象分配成員變量,如果類中沒有構(gòu)造方法,系統(tǒng)會調(diào)用默認的構(gòu)造方法(默認的構(gòu)造方法是無參數(shù)的,你一定還記得構(gòu)造方法的名字必須和類名相同這一規(guī)定),上述的Rect類提供了2個構(gòu)造方法,下面都是合法的創(chuàng)建對象的語句:rectangleOne=newRect();3.1類與對象2、對象的引用我們已經(jīng)知道,當(dāng)用類創(chuàng)建一個對象時,成員變量被分配內(nèi)存空間,這些內(nèi)存空間稱做該對象的實體或變
6、量,而對象中存放著引用,以確保這些變量由該對象操作使用。因此,如果兩個對象有相同的引用,那么就具有同樣的實體。3.1類與對象3.1.5類的繼承與多態(tài)只支持單重繼承,不支持多重繼承,只能從一個父類繼承。必須從一個類繼承默認是從Object繼承如果類Sub是類Super的子類,則類Sub只繼承超類Super中非private的成員變量和方法。子類Sub中,包括兩部分的內(nèi)容:從超類Super中繼承下來的變量和方法,自己新增加的變量和方法。3.1類與對象3.1.5類的繼承與多態(tài)繼承的語法修飾符class類名extend
7、s父類{新屬性;新方法;重載的方法;覆蓋的方法;}3.1類與對象3.1.5類的繼承與多態(tài)多態(tài)是指同一個名字的若干個方法,有不同的實現(xiàn)(即方法體中的代碼不一樣)。通過方法的重載和覆蓋來實現(xiàn)多態(tài)性。方法的重載一個類中,有若干個方法名字相同,但方法的參數(shù)不同,稱為方法的重載。不正確的方法重載publicvoidfunover(inta,floatb)publicintfunover(inta,floatb)3.1類與對象3.1.5類的繼承與多態(tài)對于多態(tài),可以總結(jié)它為:(1)使用父類類型的引用指向子類的對象;(2)該引
8、用只能調(diào)用父類中定義的方法和變量;(3)如果子類中重寫了父類中的一個方法,那么在調(diào)用這個方法的時候,將會調(diào)用子類中的這個方法;(動態(tài)連接、動態(tài)調(diào)用)(4)變量不能被重寫(覆蓋),”重寫“的概念只針對方法,如果在子類中”重寫“了父類中的變量,那么在編譯時會報錯。3.2抽象類Java也可以創(chuàng)建專門的類用來當(dāng)作父類,這種類稱為抽象類(abstractclass)。即用關(guān)鍵字abstract修