資源描述:
《Java面向?qū)ο缶幊蘰pt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Java的面向?qū)ο缶幊堂嫦驅(qū)ο蟪绦蛟O(shè)計類和對象繼承多態(tài)接口內(nèi)部類Java的面向?qū)ο缶幊?、理解對象萬物皆對象、對象唯一性2、面向?qū)ο缶幊蹋∣OP)簡單的說,OOP描述的是對象之間的相互作用。面向?qū)ο蟪绦蛟O(shè)計概述面向?qū)ο蟪绦蛟O(shè)計Java的面向?qū)ο缶幊堂嫦驅(qū)ο蟪绦蛟O(shè)計的特征封裝、繼承、多態(tài)3、面向?qū)ο缶幊膛c面向過程編程的區(qū)別過程化程序設(shè)計先確定算法,再確定數(shù)據(jù)結(jié)構(gòu);面向?qū)ο缶幊滔却_定數(shù)據(jù)結(jié)構(gòu),再確定運(yùn)算。面向過程編程的程序員,習(xí)慣于建立數(shù)據(jù)結(jié)構(gòu)存放數(shù)據(jù)并定義方法(函數(shù))來操作數(shù)據(jù);面向?qū)ο缶幊痰某绦騿T則構(gòu)造一個對象模型,將
2、數(shù)據(jù)與方法組織在一起??紤]求一個矩形的面積??Java的面向?qū)ο缶幊?、把具有相似屬性和行為的對象抽象成一個類。2、在軟件中,類就是一個模板,它定義了通用于一個特定種類的所有對象的狀態(tài)(變量)和行為(方法)。類的概念類和對象Java的面向?qū)ο缶幊填惖亩x[訪問修飾符][非訪問修飾符]classClassName[extends超類名稱][implements接口名稱列表]{變量成員聲明及初始化;方法聲明及方法體;}2、訪問修飾符:public、default(不加訪問修飾符時);3、非訪問修飾符:abstract、fi
3、nal。Java的面向?qū)ο缶幊藽lassName對象名;//沒有實例化,不能使用ClassName對象名=newClassName();//實例化對象new關(guān)鍵字的作用:1)為對象分配內(nèi)存空間;2)引起對象構(gòu)造方法的調(diào)用;3)為對象返回一個引用。創(chuàng)建對象Java的面向?qū)ο缶幊虒ο竺?屬性名或者方法名(參數(shù)列表);使用對象1、銷毀對象有兩種方式:自動銷毀和手動調(diào)用System.gc()方法;2、finalize()方法的使用。銷毀對象Java的面向?qū)ο缶幊?、成員變量的聲明:[訪問修飾符][非訪問修飾符]變量數(shù)據(jù)類型變量
4、名1=[變量初值],……;2、訪問修飾符:public、protected、default(不加訪問說明符時)、private;3、非訪問修飾符:static、final。成員變量Java的面向?qū)ο缶幊?、成員方法的聲明:[訪問修飾符][非訪問修飾符]返回類型方法名(參數(shù)列表)[throwsexceptionList]{方法體;}2、訪問修飾符:public、protected、default(不加訪問說明符時)、private;3、非訪問修飾符:static、final、abstract、synchronized。成
5、員方法Java的面向?qū)ο缶幊汤^承1、在Java中,定義類時可以通過關(guān)鍵字extends繼承一個已有的類,被繼承的類稱為父類(超類,基類),新定義的類稱為子類(派生類);2、在Java中,不允許多繼承;3、Java中Object類是所有類的父類;4、理解繼承是理解面向?qū)ο蟪绦蛟O(shè)計的關(guān)鍵,實現(xiàn)代碼復(fù)用,多態(tài)的基礎(chǔ)。繼承的概念Java的面向?qū)ο缶幊汤^承1、子類可以繼承父類中被聲明為public、protected的成員變量和方法,不能繼承父類中被聲明為private的成員變量和方法;2、如果子類聲明了一個與父類同名的成員變量
6、,則此時子類不能繼承父類的成員變量,此時我們稱子類的成員變量隱藏了父類的成員變量;3、如果子類聲明了一個與父類同名的成員方法,則此時子類不能繼承父類的成員方法,此時我們稱子類的成員方法覆蓋了父類的成員方法;繼承原則Java的面向?qū)ο缶幊?、構(gòu)造方法的名字和類名相同,并且沒有返回值。2、構(gòu)造方法主要用于為創(chuàng)建類的對象并對其初始化。3、我們不能直接調(diào)用構(gòu)造方法,必須通過new關(guān)鍵字來調(diào)用,從而創(chuàng)建類的實例。4、Java的類都要求有構(gòu)造方法,如果沒有定義構(gòu)造方法,Java編譯器會為我們提供一個缺省的構(gòu)造方法,也就是不帶參數(shù)的
7、構(gòu)造方法。5、當(dāng)我們用缺省的構(gòu)造方法初始化對象時,系統(tǒng)用默認(rèn)值初始化對象的成員變量。構(gòu)造方法Java的面向?qū)ο缶幊天o態(tài)代碼塊是由關(guān)鍵字static引導(dǎo)的一對大括號括起的語句塊。作用是:在類加載時,初始化類的靜態(tài)變量等(執(zhí)行一次)。與構(gòu)造方法相同,他們都是用來完成初始化的工作,但是靜態(tài)代碼塊與構(gòu)造方法有三點(diǎn)不同:1、構(gòu)造方法是對每個新創(chuàng)建的對象初始化,而靜態(tài)代碼塊是對類自身進(jìn)行初始化。2、構(gòu)造方法是在用new運(yùn)算符產(chǎn)生新對象時由系統(tǒng)自動執(zhí)行,而靜態(tài)代碼塊則是在它所屬的類加載到內(nèi)存時由系統(tǒng)調(diào)用執(zhí)行。3、不同于構(gòu)造方法,
8、靜態(tài)代碼塊不是方法,沒有方法名和參數(shù)列表。靜態(tài)代碼塊Java的面向?qū)ο缶幊?、當(dāng)父類與子類都有靜態(tài)代碼塊和構(gòu)造方法的時候,執(zhí)行順序如下:2、靜態(tài)代碼塊>構(gòu)造方法3、父類靜態(tài)代碼塊>子類靜態(tài)代碼塊4、父類構(gòu)造方法>子類構(gòu)造方法5、如果是多級繼承關(guān)系的話,最高層的父類首先執(zhí)行,然后依次遞減構(gòu)造方法、靜態(tài)代碼塊執(zhí)行順序Java的面向?qū)ο?/p>