《Java初級教程第六章面向?qū)ο?ppt》由會員分享,可在線閱讀,更多相關(guān)《Java初級教程第六章面向?qū)ο?ppt(26頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、Java語言基礎(chǔ)第六章 面向?qū)ο?什么是對象 什么是類 類與對象的關(guān)系 類的定義與使用 方法的重載 構(gòu)造方法的使用 this關(guān)鍵字,上章內(nèi)容,類成員與實例成員區(qū)別 static 關(guān)鍵字的使用 封裝 繼承 extends關(guān)鍵字 方法的重寫 super關(guān)鍵字,本節(jié)內(nèi)容,什么是類成員 使用static修飾的成員方法和成員變量稱為類成員 使用static修飾的成員變量叫做類變量 使用static修飾的成員方法叫做類方法 什么是實例變量 未使用static修飾的成員方法和成員變量稱為實例成員 未使用static修飾的成員變量叫做實例變量 未使用static修飾的成員方法叫做實例方法,實例成員與類成員,實
2、例成員和類成員,實例變量和類變量的區(qū)別 所有對象該類的共享同一個類變量,但是每個對象都會有自己獨特的實例變量 所有該類的對象都能改變類變量的值,但是每個對象只能改變自己的實例變量值 實例變量在使用前必須創(chuàng)建一個對象,根據(jù)對象名.變量名使用,但是類變量不需要創(chuàng)建對象,實例變量和類變量的區(qū)別,實例變量和類變量的區(qū)別,類方法和實例方法的區(qū)別 所有該類對象共享類方法和實例方法 類方法使用類名.方法名(參數(shù))調(diào)用 實例方法使用對象名.方法名(參數(shù))調(diào)用,類方法和實例方法的區(qū)別,實例成員和類成員的相互訪問限制 實例方法可以直接訪問實例變量和實例方法。 實例方法可以直接訪問類變量和類方法。 類方法可以直接訪
3、問類變量和類方法。 類方法不,要訪問它們必須使用對象引用。還有,能直接訪問實例變量或?qū)嵗椒惙椒ú荒苁褂胻his關(guān)鍵字,因為沒有this的實例可供使用。,實例成員和類成員,靜態(tài)代碼塊 是一個以static為前導(dǎo)的代碼塊,一般用于為類的工作做一些初始化工作,如初始化一些靜態(tài)變量。 一個類中可以有許多靜態(tài)初始化塊,并且它們可以出現(xiàn)在類體的任何地方。運行時系統(tǒng)會保證靜態(tài)初始化塊會按照它們在源代碼中出現(xiàn)的順序被調(diào)用,static的其他使用,封裝的概念 把客觀事物封裝成抽象的類,并且類可以把自己的屬性和方法只讓可信的類或者對象進(jìn)行操作,對不可信的類或者對象隱藏,這樣的過程叫做封裝。 封裝的分類 對屬性
4、的封裝 將屬性設(shè)置為private(私有),限制其只能在類的內(nèi)部使用 對方法的封裝 外部不能訪問的對于方法的封裝,將外部可以訪問方法設(shè)置為public,將方法設(shè)置為private,封裝的使用,封裝的使用,類中定義的私有成員變量,通常會為其提供getter和setter方法訪問私有屬性,以保證對私有屬性操作的安全性,封裝的使用,什么是繼承 一個新類可以從現(xiàn)有的類派生,這樣的過程叫做繼承 那么在繼承的過程中,新類被稱為子類,現(xiàn)有的類被稱為父類,子類將會繼承父類的屬性和行為。,繼承的使用,繼承的語法 修飾符 class 子類類名 extends 父類類名類體部分,Java繼承語法,子類除了可以擁有父
5、類非私有的屬性和方法外,也可以擴(kuò)展自己的屬性和方法,子類的擴(kuò)展,Java中的繼承是單繼承,也就是一個類只能有一個父類。 如果一個類沒有顯式的繼承某一個類,那么它有一個默認(rèn)的父類是java.lang.Object類 Java繼承了父類非私有的成員變量和成語方法,但是請注意:子類是無法繼承父類的構(gòu)造方法的,繼承的使用,訪問修飾符對成員變量和成員方法的訪問限定,訪問修飾符,重寫 override 子類從父類繼承的某個實例方法無法滿足子類的功能需要時,需要在子類中對該實例方法進(jìn)行重新實現(xiàn),這樣的過程稱為重寫,也叫做覆寫。 方法重寫的要求 子類重寫方法的訪問修飾范圍必須大于或者等于父類對應(yīng)方法的訪問修飾
6、符范圍 除修飾符外,重寫方法的其他部分必須和父類保持一致,方法的重寫,super代表的是父類對象 super的使用方式 super.屬性名 用于在子類中調(diào)用父類被隱藏的同名實例變量 super(參數(shù)列表) 用于在子類的構(gòu)造方法中調(diào)用父類的構(gòu)造方法,super關(guān)鍵字,super.變量名的使用,super關(guān)鍵字,super(參數(shù)列表)的使用,super關(guān)鍵字,每一個子類的構(gòu)造方法在沒有顯示調(diào)用super()系統(tǒng)都會提供一個默認(rèn)的super() super() 書寫在第一行 可以在子類構(gòu)造方法中顯示調(diào)用super(),完成對特定父類構(gòu)造方法的調(diào)用,super關(guān)鍵字,類成員與實例成員區(qū)別 static
7、 關(guān)鍵字的使用 封裝 繼承 extends關(guān)鍵字 方法的重寫 super關(guān)鍵字,本章總結(jié),作業(yè)一: 設(shè)計一個形狀類Shape,方法:求周長和求面積 形狀類的子類:Rect(矩形),Circle(圓形) Rect類的子類:Square(正方形) 不同的子類會有不同的計算周長和面積的方法,作業(yè),作業(yè)二: 某公司的雇員分為以下若干類: Employee:這是所有員工總的父類,屬性:員工的姓名,員工的生日月份。方法:getSalary(int month) 根據(jù)參數(shù)月份來確定工資,如果該月員工過生日,則公司會額外獎勵100元。 SalariedEmployee:Employee的子類,拿固定工資的員工。屬性:月薪 HourlyEmployee:Employee的子類,按小時拿工資的員工,每月工作超出160小時的部分按照1.5倍工資發(fā)放。屬性:每小時的工資、每月工作的小時數(shù) SalesEmployee:Employee的子類,銷售人員,工資由月銷售額和提成率決定。屬性:月銷售額、提成率 BasePlusSalesEmployee:SalesEmployee的子類,有固定底薪的銷售人員,工資由底薪加上銷售提成部分。屬性:底薪。,作業(yè),