




已閱讀5頁(yè),還剩32頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
面向?qū)ο蟮奶匦?目標(biāo),有關(guān)面向?qū)ο蟮母拍?Java的類 Java的對(duì)象 Java的面向?qū)ο筇匦?抽象類和接口 Inner Class 總結(jié),面向?qū)ο蟮母拍?面向?qū)ο蟪绦蛟O(shè)計(jì)圍繞的幾個(gè)主要概念: 抽象數(shù)據(jù)類型、類、類型層次(子類),封裝性,繼承性、多態(tài)性 對(duì)象,消息和方法,抽象數(shù)據(jù)類型,class Car int color_number; int door_number; int speed; void brake() void speedUp() ; void slowDown() ,抽象數(shù)據(jù)類型,類,什么是類? 類是描述對(duì)象的“基本原型”,它定義一種對(duì)象所能擁有的數(shù)據(jù)和能完成的操作,在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,類是程序的基本單元。 程序中的對(duì)象 是類的一個(gè)實(shí)例,是一個(gè)軟件單元, 它由一組結(jié)構(gòu)化的數(shù)據(jù)和 在其上的一組操作構(gòu)成。,變量:即指對(duì)象的所知道的狀態(tài) 方法:指對(duì)象的功能單元。 什么是消息? 軟件對(duì)象通過相互間傳遞消息來相互作用和通信 一個(gè)消息由三部分組成: 1. 接受消息的對(duì)象 2. 要完成方法的名字 3. 方法需要的參數(shù),一個(gè)例子 在程序中操作對(duì)象是類的一個(gè)實(shí)例:即對(duì)象 創(chuàng)建一個(gè)對(duì)象 Hello obj=new Hello(); 調(diào)用方法 obj.showString(“Hello World!”),class Hello ,private String s;,public void showString () System.out.println(s); public void changeString(String str) s=str; return s;,封裝,什么是封裝? 封裝把對(duì)象的所有組成部分組合在一起,封裝定義程序如何引用對(duì)象的數(shù)據(jù),封裝實(shí)際上使用方法將類的數(shù)據(jù)隱藏起來,控制用戶對(duì)類的修改和訪問數(shù)據(jù)的程度。,子類,什么是子類? 子類是作為另一個(gè)類的擴(kuò)充或修正所定義的一個(gè)類.,bicycle,(super class),Mountain bikes,Racing bikes,Tandem bikes,sub class,繼承,繼承是子類利用父類中定義的方法和變量就像它們屬于子類本身一樣.,class Car int color_number; int door_number; int speed; push_break() add_oil() ,class Trash_Car extends Car double amount; fill_trash() ,何時(shí)選擇繼承性,一個(gè)很好的經(jīng)驗(yàn): “B是一個(gè)A嗎?” 如果是則讓B做A的子類. 常犯的錯(cuò)誤:A有一個(gè)B嗎? 例如讓汽車輪子成為汽車的子類是錯(cuò)誤的,方法重寫(overridden),什么是方法的覆蓋(重寫)? 在子類中重新定義父類中已有的方法,class Car int color_number; int door_number; int speed; push_break() speed=0; add_oil() ,class Trash_Car extends Car double amount; fill_trash() push_break() speed=speed-10; ,多態(tài)性(polymorphic),什么是方法的重載(多態(tài)性)? 在同一個(gè)類中至少有兩個(gè)方法用同一個(gè)名字,但有不同的參數(shù)。,類,void show(int int_num),void show(double double_num),void show(nit nit_ um, float float_um),123,1.23,123,1.23,Java 類定義,包括類聲明和類體 類聲明: publicabstract|final class className extends superclassName implements interfaceNameList ,類體定義如下: class className public | protected | private static final transient volatile type variableName; /成員變量 public | protected | private static final | abstract native synchronized returnType methodName(paramList) throws exceptionList statements /成員方法 ,成員變量,public | protected | private static final transient volatile type variableName; /成員變量 static: 靜態(tài)變量(類變量;相對(duì)于實(shí)例變量 final: 常量,成員方法,public | protected | private static final | abstract native synchronized returnType methodName(paramList) throws exceptionList /方法聲明 statements /方法體 方法聲明 static: 類方法,可通過類名直接調(diào)用 abstract: 抽象方法,沒有方法體 final: 方法不能被重寫 native: 集成其它語(yǔ)言的代碼 synchronized: 控制多個(gè)并發(fā)線程的訪問,成員方法(值參傳遞),public class PassTest float ptValue /全局變量 public static void main(String args) int val; PassTest pt=new PassTest(); val=1 System.out.println(“Original Int Value is:”+val); 1 pt.changedInt(val); /參數(shù)傳遞 System.out.pringln(“Int Value after Change is:” +val); 1 pt.ptValue=101f; /對(duì)象調(diào)用變量 System.out.println(“Original ptValue is:”+pt.ptValue); pt.ChangeObjValue(pt); /對(duì)象傳遞 System.out.println(“ptValue after Change is:”+pt.ptValue); public void changeInt(int value) value=55; public void changeObjValue(PassTest ref) ref.ptValue=99f; ,方法體包括局部變量的聲明以及所有合法的Java指令。 局部變量的作用域在該方法內(nèi)部。 若局部變量與類的成員變量同名,則類的成員變量被隱藏。,class Variable int x=0,y=0,z=0; /類的成員變量 void init(int x,int y) this.x=x; this.y=y; / 用this指向當(dāng)前對(duì)象 int z=5; /局部變量 System.out.println(“* in init*”); System.out.(“x=”+x+“ y=”+y+“ z=”+z) ,public class VariableTest public static void main(String args) Variable v=new Variable(); System.out.println(“*before init*”); System.out.println(“x=”+v.x+ “y=”+ v.y+“z=”+v.z); v.init(20,30); System.out.println(“*after init*”);,System.out.println(“x=”+v.x+ “y=”+ v.y+“z=”+v.z); ,this-用在一個(gè)方法中引用當(dāng)前對(duì)象,它的值是調(diào)用該 方法的對(duì)象。 返回值須與返回類型一致,或是其子類 返回類型是接口時(shí),返回值必須實(shí)現(xiàn)該接口。,方法重載(Method Overloading),方法重載指多個(gè)方法享有相同的方法名 區(qū)別在于:參數(shù)類型不同,或個(gè)數(shù)不同; 返回類型不能用來區(qū)分重載的方法。,class MethodOverloading void receive(int i) void receive(int x, int y) void receive(double d) void receive(String s) ,public class MethodOverloadingTest public static void main(String args) MethodOverloading mo=new MethodOverloading(); mo.receive(1); mo.receive(2,3); mo.receive(12.56); mo.receive(“very interesting, isnt it?”); ,構(gòu)造方法,重載經(jīng)常用于構(gòu)造方法 構(gòu)造方法具有和類名相同的名稱,而且不返回任何數(shù)據(jù)類型,即沒有返回值 構(gòu)造方法只能由new運(yùn)算符調(diào)用 利用構(gòu)造方法進(jìn)行初始化 構(gòu)造方法不能被繼承,class Point int x,y; Point() x=0; y=0; Point(int x, int y) this.x=x; this.y=y; ,finalize()方法,在根類java.land.Object中實(shí)現(xiàn) 對(duì)對(duì)象進(jìn)行垃圾收集前,系統(tǒng)自動(dòng)調(diào)用 自己重寫時(shí)需要調(diào)用父類的finalize()方法, protected void finalize() throws throwable /clean up code for this class super.finalize(); ,Java對(duì)象,類實(shí)例化可生成對(duì)象 對(duì)象通過消息傳遞來進(jìn)行交互 消息傳遞即激活指定的某個(gè)對(duì)象的方法以改變其狀態(tài)或讓它產(chǎn)生一定的行為。 public class HelloWorldApp public static void main(String args) System.out.println(“hello”); ,對(duì)象的生命周期,生成 使用 清除,實(shí)例化對(duì)象的過程,包括聲明、實(shí)例化和初始化 格式: type objectName=new type(paramlist); (1)聲明:type objectName 聲明并不為對(duì)象分配內(nèi)存空間,而只是分配一個(gè)引用空間; (2)實(shí)例化:運(yùn)算符new為對(duì)象分配內(nèi)存空間,它調(diào)用對(duì)象的構(gòu)造方法,返回引用;一個(gè)類的不同對(duì)象分別占據(jù)不同的內(nèi)存空間。,(3)生成:執(zhí)行構(gòu)造方法,進(jìn)行初始化;根據(jù)參數(shù)不同調(diào)用相應(yīng)的構(gòu)造方法。 對(duì)象的引用指向一個(gè)中間的數(shù)據(jù)結(jié)構(gòu),它存儲(chǔ)有關(guān)數(shù)據(jù)類型的信息以及當(dāng)前對(duì)象所在的堆的地址,而對(duì)于對(duì)象所在的實(shí)際的內(nèi)存地址是不可操作的,這就保證了安全性。 通過運(yùn)算符“.”可以實(shí)現(xiàn)對(duì)變量的訪問和方法的調(diào)用。 設(shè)定訪問權(quán)限來限制其它對(duì)象對(duì)它的訪問,調(diào)用對(duì)象的變量,格式:objectReference.variabl
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 熱與溫度的物理關(guān)系探討試題及答案
- 工程安全考試試題及答案
- 殯儀實(shí)操考試試題及答案
- 公務(wù)員公園試題及答案
- 海職院期末考試試題及答案
- 貴州法宣考試試題及答案
- 考公務(wù)員的試題及答案
- 貴州安全員試題及答案
- 金融學(xué)科考試試題及答案
- 汽服專業(yè)考試試題及答案
- 電音節(jié)策劃方案
- 貝恩杯案例分析大賽初賽題目
- 2023年江蘇省南京市中考語(yǔ)文默寫題復(fù)習(xí)(附答案解析)
- 全國(guó)各省市郵編對(duì)照表
- 行政區(qū)域代碼表Excel
- YS/T 837-2012濺射靶材-背板結(jié)合質(zhì)量超聲波檢驗(yàn)方法
- 燒烤類菜單表格
- DB11∕T 583-2022 扣件式和碗扣式鋼管腳手架安全選用技術(shù)規(guī)程
- 酒水購(gòu)銷合同范本(3篇)
- ??低曄到y(tǒng)圖標(biāo)
- 印染廠管理手冊(cè)
評(píng)論
0/150
提交評(píng)論