基礎(chǔ)

局部變量和成員變量

局部變量是定義在方法中的變量,只能在方法中使用

成員變量是定義在類中的變量,在類中使用

java會給成員變量一個初始值,但不會給局部變量初始值

如果成員變量變量名與局部變量變量名同名了,則在此方法中優(yōu)先使用局部變量


static

java中被static修飾的成員被稱為靜態(tài)成員或類成員,它是屬于整個類的,為類的所有對象所共有

static可以修飾變量、方法和代碼塊

靜態(tài)變量可以直接用類名調(diào)用,如果在同一個類中可以直接調(diào)用

靜態(tài)方法中可以直接調(diào)用靜態(tài)變量,不能調(diào)用非靜態(tài)變量(要用對象來調(diào)用)

靜態(tài)方法中不能定義靜態(tài)變量和調(diào)用this、super關(guān)鍵字,因為this、super是針對對象的,但是靜態(tài)方法屬于類,方法中定義的是局部變量,所以靜態(tài)方法中不允許定義靜態(tài)變量(靜態(tài)變量是全局變量)

static修飾的成員只會在類加載時創(chuàng)建一次(初始化),調(diào)用static成員時也會加載類

static修飾的成員會被子類繼承,子類會隱藏這個成員,但子類不能覆蓋它

構(gòu)造方法隱式的被指定為static


構(gòu)造方法

new關(guān)鍵字:

new運算符通過給這個對象分配內(nèi)存并返回一個指向?qū)ο蟮囊?/p>

new+構(gòu)造方法 來初始化類

構(gòu)造方法無返回值

如果你沒有定義構(gòu)造方法,系統(tǒng)會默認的構(gòu)造一個無參的構(gòu)造方法


初始化塊

初始化塊是用來初始化類的,給所有的對象初始化,構(gòu)造函數(shù)只給相對應(yīng)的對象初始化,初始化塊在對象一建立就會運行,且優(yōu)先于構(gòu)造函數(shù)

靜態(tài)初始化塊只能給靜態(tài)變量賦值,不能給普通變量賦值

靜態(tài)初始化塊最先執(zhí)行(只在類加載時執(zhí)行,并且只執(zhí)行一次),然后是初始化塊,最后才是構(gòu)造函數(shù)


內(nèi)部類

內(nèi)部類就是定義在另外一個類中的類,包含內(nèi)部類的類被稱為外部類

內(nèi)部類的方法可以直接訪問外部類的所有數(shù)據(jù)(包括私有的)

內(nèi)部類有以下幾種:成員內(nèi)部類,方法內(nèi)部類,靜態(tài)內(nèi)部類,匿名內(nèi)部類

1.成員內(nèi)部類

成員內(nèi)部類能直接使用(或者使用外部類.this.對象來調(diào)用)外部類的所有數(shù)據(jù)而不受訪問控制符的影響

定義了成員內(nèi)部類后必須使用外部類的對象來new一個內(nèi)部類的對象

外部類不能直接使用內(nèi)部類的成員變量和方法

public void Testing {

??? public static void main(String[] args) {

??????? Outter o = new Outter();

??????? Outter.Inner?i = o.new Inner();

??? }

}

class Outter {

??? class Inner { }

}

2.靜態(tài)內(nèi)部類

靜態(tài)內(nèi)部類不能直接訪問外部類的非靜態(tài)成員,但可以通過new 外部類().成員的方式訪問

創(chuàng)建靜態(tài)內(nèi)部類的對象時可以不需要外部類的對象,直接創(chuàng)建

如果外部類的靜態(tài)成員與內(nèi)部類的靜態(tài)成員名字相同,可以通過類名直接訪問外部類的靜態(tài)成員,若不同,則可以直接調(diào)用

3.方法內(nèi)部類

方法內(nèi)部類就是定義在外部類的方法中,只在該方法中使用,不能使用訪問控制符和static修飾符

4.匿名內(nèi)部類

匿名內(nèi)部類是不能有名稱的類,所以沒辦法引用他們,必須在創(chuàng)建時,作為new語句的一部分來聲明他們

如:Outter o = new Outter() {

??? //匿名內(nèi)部類

}

訪問修飾符

訪問修飾符有四種:private 默認 protected public

private是私有的,只能在當前類中使用

不能在方法體內(nèi)部使用private,因為private修飾的變量屬于全局變量

默認 可以在當前類和同一包中的類中使用

protected 可以在當前類和同一包中的類以及子類中使用

public 可以被所有類訪問


final關(guān)鍵字

final可以修飾類、方法、屬性和變量

修飾類的時候,該類不能被繼承,final 類的所有成員和方法都會隱式的被指定為final成員或方法

修飾方法,則該方法不能能被覆蓋,類的private方法會隱式的被指定為final方法

修飾屬性,則該屬性不會隱性的初始化

修飾變量,該變量就成了常量,當final作用于類的成員變量時,成員變量(注意是類的成員變量,局部變量只需要保證在使用之前被初始化賦值即可)必須在定義時或者構(gòu)造器中進行初始化賦值,而且final變量一旦被初始化賦值之后,就不能再被賦值了。


equal 和 ==

基本數(shù)據(jù)類型之間的比較應(yīng)該用==,比較的是他們的值。引用數(shù)據(jù)類型用==比較的時候,比較的是他們再內(nèi)存中的地址


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容