第三章
static 關(guān)鍵字可以修飾變量也可以修飾方法锌俱,也可以修飾靜態(tài)方法
static修飾的變量叫做靜態(tài)變量程序運(yùn)行的時(shí)候靜態(tài)放在方法去里因此給及靜態(tài)方法付尚志,(支付一次值)
this 指的是限定摸個(gè)值造寝,調(diào)用的成員變量,沒有this調(diào)用的是就近原則
static 修飾變量签赃,修飾方法箩绍,修飾對(duì)象
靜態(tài)的意思開發(fā)中建議使用類名變量名的方法訪問靜態(tài)變量
靜態(tài)方法可以直接調(diào)用靜態(tài)方法 main方法可以直接調(diào)用static方法費(fèi)靜態(tài)應(yīng)該使用getset方法peiver來調(diào)用
靜態(tài)方法也不能使用費(fèi)靜態(tài)變量 不可以使用this.的方法來調(diào)用靜態(tài)方法,因?yàn)殪o態(tài)方法是存放在防區(qū)去里面的不可以被調(diào)用
限制性方法去的內(nèi)容因?yàn)閙ain方法是程序的入口所以執(zhí)行main方法內(nèi)容靜態(tài)語句開里面的內(nèi)容只會(huì)執(zhí)行一次靜態(tài)語句快自傷而下執(zhí)行
代碼塊:就是一大括號(hào)括起來的東西{}
局部代碼塊時(shí)出現(xiàn)在main方法里面的
public static void main (String[] args){
int i;
system.out.println(i);
}局部代碼塊會(huì)提高內(nèi)存的利用率
構(gòu)造方法快:實(shí)在main方法外面類名的里面
{
system.out.println(構(gòu)造代碼塊);
}
static{
system.out.println(靜態(tài)代碼塊);
}
方法執(zhí)行的循序:
1.靜態(tài)代碼塊陨簇,隨著雷佳在而加載唉窃,癿只能執(zhí)行一次
2.構(gòu)造方法快,沒創(chuàng)建一個(gè)對(duì)象就會(huì)執(zhí)行一次蔓涧,優(yōu)先于構(gòu)造方法執(zhí)行
3.構(gòu)造方法,沒創(chuàng)建一個(gè)對(duì)象就會(huì)執(zhí)行一次
繼承:在Java語言當(dāng)中主要描述的是倆你哥哥類之間的關(guān)系
一個(gè)子類只能有一個(gè)父類笋额,但是父類可以有多個(gè)子類元暴,子類繼承父類之后可以使用父類的元素,或成員方法 兄猩,如果是private繼承就不可以 繼承如果沒有顯示繼承其他類那就限制的object類objec是孫工資的一個(gè)父類
繼承提高了代碼的復(fù)用性與維護(hù)性讓類與類之間產(chǎn)生了多態(tài)的前提(繼承)
多態(tài):
多態(tài)要符合一下三種條件:
1.有繼承茉盏;
2.有方法重寫
3.有父類引用指向子類對(duì)象
instanceof:
指的是判斷類型
利用if判斷來排除這種錯(cuò)誤
比利用動(dòng)態(tài)會(huì)造成代碼的繁重或者冗余,會(huì)不停的創(chuàng)建代碼
但利用多態(tài)就不會(huì)產(chǎn)生只要?jiǎng)?chuàng)建一個(gè)汽車品牌的類對(duì)象就好了枢冤,可以達(dá)到自動(dòng)傳參
都太可以提高代碼的擴(kuò)展性減少了代碼的冗余鸠姨,但是穿的參數(shù)更加抽象,范圍更大
要面向抽象編程淹真,不要面向聚具體編程
final關(guān)鍵字
final修飾的類無法被繼承
final修飾的方法無法被重寫
final修飾的局部變量讶迁,一旦賦值,無法被改變
final修飾的成員變量必須初始化值核蘸。
{只要final修飾的值巍糯,無法被繼承,無兒無女}
{final福德之無法被改變}
{final修飾的成員變量必須初始化值值纱。}
抽象類(北abstract修飾的類叫做抽象類,abstract修飾的方法叫做抽象方法)
【讓子類去重寫構(gòu)造方法】
相應(yīng)代碼:
這里會(huì)出現(xiàn)報(bào)錯(cuò)因?yàn)槌橄蟠蚶谉o法被實(shí)類化所以不能從新定義坯汤,我們要通過多態(tài)的而行之來創(chuàng)建一個(gè)對(duì)象進(jìn)行導(dǎo)入
接口{在Java余元中我們可以使用interface來聲明一個(gè)接口【可以理解為特殊的抽象類(里面的方法全部都是抽象的)】}
接口需要注意的地方
以為接口沒有構(gòu)造方法虐唠,所以無法創(chuàng)建接口的對(duì)象
【接口相關(guān)代碼】
接口的作用:可以使項(xiàng)目分層,都面向接口開放惰聂,提高開發(fā)率
降低了代碼之間的耦合率疆偿,緹歐高拉代碼的可插拔性
【相應(yīng)圖例】
toString方法
equals方法
用來判斷連兩個(gè)方法是否相同搓幌,注意在調(diào)用自己的equals時(shí)杆故,注意重寫么不然系統(tǒng)默認(rèn)滴哦阿勇父類的equals方法
Java里面的垃圾回收器在后說之前會(huì)先調(diào)用finalize方法
finalist方法是系統(tǒng)自行調(diào)用的
使用package類來聲明報(bào)包名包名命名是通常使用小寫
命名樣式
input關(guān)鍵字+包名就是把下面的導(dǎo)報(bào)語句整理到上面的關(guān)鍵字
使用到不同包使用input導(dǎo)報(bào)語句
四種訪問權(quán)限
內(nèi)部類:就是一個(gè)類中還有一個(gè)類~
~靜態(tài)內(nèi)部類,匿名內(nèi)部類溉愁,成員內(nèi)部類处铛,局部內(nèi)部類
內(nèi)部類的特點(diǎn):
內(nèi)部類可以直接訪問外部類的成員,包括private修飾變量和方法
內(nèi)部靜態(tài)類
1.靜態(tài)內(nèi)部類可以等同看做靜態(tài)變量
2.靜態(tài)內(nèi)部類可以直接訪問外部類的靜態(tài)數(shù)據(jù)