150天打卡day15_案例分析串講
一、類和對(duì)象
類的定義
類是一個(gè)抽象的邏輯概念,用來(lái)描述同一類型所共同擁有的靜態(tài)特征和動(dòng)態(tài)行為
成員變量:用來(lái)描述對(duì)象的靜態(tài)特征
方法:用來(lái)描述對(duì)象的行為,封裝對(duì)象的功能
創(chuàng)建一個(gè)對(duì)象
new 關(guān)鍵字
new 類名();
引用類型變量
除了用八大基本數(shù)據(jù)類型定義的變量之外,用數(shù)組,類,接口來(lái)聲明的變量都是引用類型變量,指向?qū)ο蟮牡刂?通過(guò)引用類型來(lái)對(duì)操作對(duì)象
案例
第01步:創(chuàng)建電影票類
?
測(cè)試
二、方法的重載和構(gòu)造方法
方法的重載
定義
發(fā)生在一個(gè)類里,要求方法名相同,參數(shù)列表不同(參數(shù)的類型,個(gè)數(shù),順序),程序在運(yùn)行的時(shí)候編譯器會(huì)自動(dòng)根據(jù)傳入的參數(shù)來(lái)調(diào)用相應(yīng)的構(gòu)造方法。
適用場(chǎng)景:
對(duì)同一個(gè)問(wèn)題,有不同的解決辦法的時(shí)候就可以使用方法的重載
例如:付款
?
案例
構(gòu)造方法
定義
構(gòu)造方法是在實(shí)例化對(duì)象的時(shí)候所調(diào)用的一個(gè)特殊方法,用來(lái)在實(shí)例化對(duì)象的時(shí)候初始化成員變量。
語(yǔ)法
構(gòu)造方法不允許有返回值
構(gòu)造方法名和類名一致
this關(guān)鍵字
this關(guān)鍵字用在方法體中,用于指向調(diào)用該方法的當(dāng)前對(duì)象,簡(jiǎn)單的來(lái)說(shuō),就是那個(gè)對(duì)象調(diào)用方法,this就指向哪個(gè)對(duì)象,用運(yùn)算符"."來(lái)表示對(duì)象的屬性,可以理解為對(duì)象的。
構(gòu)造方法的重載
構(gòu)造方法也可以重載,要求方法名相同,參數(shù)列表不同,每個(gè)類中都有一個(gè)默認(rèn)的空的無(wú)參構(gòu)造,但是如果想要自己決定實(shí)例化那個(gè)成員變量就可以自己定義帶參的構(gòu)造方法 來(lái)初始化成員變量,在程序運(yùn)行的時(shí)候編譯器會(huì)根據(jù)傳入的參數(shù)來(lái)自動(dòng)調(diào)用相應(yīng)的構(gòu)造方法。
案例
三、封裝和訪問(wèn)控制
package
在硬盤上包是存儲(chǔ)多個(gè)類文件的文件夾,在程序里是一個(gè)名稱空間,用來(lái)組織多個(gè)類文件,避免類名沖突。
在Java中有兩個(gè)非常嚴(yán)格的規(guī)定
任何的.class文件,都必須保存在自己指定的包名文件下
在同一個(gè)包中不允許有兩個(gè)同名的類
包名也有層次結(jié)構(gòu),在一個(gè)包中可以包含另一個(gè)包,為了從根本上解決命名沖突的問(wèn)題,在指定包名的時(shí)候應(yīng)該按照一定的規(guī)范.如果要定義多層包名,可以使用下列語(yǔ)法:
package 公司或組織名稱.項(xiàng)目名.功能模塊名
import
import 類的全局限定名(包名+類名)
通過(guò)import聲明了類的全稱后,在源文件中就可以直接使用類名進(jìn)行訪問(wèn).
?
封裝的意義
封裝是面向?qū)ο蟮闹匾瓌t,是指把對(duì)象的屬性和行為結(jié)合成一個(gè)獨(dú)立的整體,并盡可能的隱藏內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)
在Java中實(shí)現(xiàn)封裝的步驟.
數(shù)據(jù)私有化,用private修飾符實(shí)現(xiàn)
方法公開化,用get()set()方法對(duì)屬性進(jìn)行賦值,取值工作
封裝的意義
實(shí)現(xiàn)對(duì)數(shù)據(jù)的封裝
隱藏內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)
案例
四、繼承的意義
extends
在Java中用extends關(guān)鍵字來(lái)表示繼承,子類可以繼承父類的屬性和方法,還可以有自己特有的屬性和方法。
使用繼承可以實(shí)現(xiàn)代碼的復(fù)用
繼承的特性
單根性
傳遞性
案例
super
構(gòu)造方法無(wú)法繼承,在Java中規(guī)定子類在構(gòu)造之前必須先構(gòu)造父類。事實(shí)上,子類的構(gòu)造方法中是必須要通過(guò)super關(guān)鍵字來(lái)調(diào)用父類的構(gòu)造方法。
?
案例
五、方法的重寫
重寫的定義
重寫發(fā)生在父子類關(guān)系中,必須要以繼承為基礎(chǔ),子類可以對(duì)繼承過(guò)來(lái)的父類方法進(jìn)行重寫,要求方法名和參數(shù)列表一樣,方法實(shí)現(xiàn)不同。
當(dāng)子類的重寫方法被調(diào)用時(shí)看對(duì)象,無(wú)論是用父類的引用還是子類的引用,最終運(yùn)行的都是子類重寫后的方法。
重寫中使用super關(guān)鍵字
當(dāng)需要在子類中調(diào)用父類的被重寫方法時(shí),需要用到super關(guān)鍵字
?
案例
重載和重寫的區(qū)別
重載:發(fā)生在一個(gè)類里,要求方法名相同,參數(shù)列表不同,和方法的返回值類型還有修飾符沒(méi)有關(guān)系。
重寫:發(fā)生在父子類關(guān)系里,必須是以繼承為基礎(chǔ),如果不能繼承這個(gè)類,則不能重寫類中的方法。
兩同
重寫的方法方法名必須和被重寫方法一致
重寫的方法參數(shù)列表必須保持一致
兩小
重寫的方法返回值類型必須小于或者等于被重寫方法
void 時(shí)和父類一致
基本數(shù)據(jù)類型時(shí)和父類一致
引用類型時(shí)小于父類
重寫的方法拋出的異常要小于或等于被重寫的方法
一大
重寫的方法修飾符只能大于被重寫的方法的修飾符
案例
六、static和final
static
靜態(tài)的,在Java中所有和靜態(tài)相關(guān)的,都用static來(lái)修飾,表示全局的,屬于類,存在于方法區(qū)中,可以直接通過(guò)類名調(diào)用。
static修飾成員變量
static修飾方法
static修飾代碼塊
final
final最終的
用final修飾的類不允許被繼承
用final修飾的方法不允許被重寫
用final修飾的變量不允許被修改
?
案例
?
歡迎??點(diǎn)贊+關(guān)注,筆芯??

?
?
?
?
?
?
?
?
?
?
?
?
?
?
?