final關鍵字和內部類

2021-10-25 01:24:34 字數 2969 閱讀 9506

內部類1.可以用來修飾乙個類

2.可以用來修飾乙個方法

3.可以用來修飾乙個區域性變數

4.可以用來修飾乙個成員變數

當final關鍵字用來修飾乙個類的時候,格式:

public final class 類名稱

含義:當前這個類不能有任何的子類。

其中所有的成員方法都無法覆蓋重寫。

當final關鍵字用來修飾乙個方法的時候,格式

修飾符 final 返回值型別 方法名稱(引數列表)

對於類、方法來說,abstract關鍵字和final關鍵字不能同時使用,因為矛盾。抽象方法需要重寫,final關鍵字不被能重寫。

public

final

class

fu/*public abstract final void method()//錯誤寫法*/

}

public

class

zi/* extends fu*/

}

對於成員變數來說,如果使用final關鍵字修飾,那麼這個變數也照樣是不可變

1.由於成員變數具有預設值,一旦用了final關鍵字之後,必須手動賦值。

2.對於final的成員變數,要麼直接賦值,要麼通過構造方法賦值。二者選其一。

3.必須保證類當中所有過載的構造方法,最終會對final的成員變數進行賦值。

成員變數

public

class

person

public

person

(string name)

public string getname()

/*public void setname(string name) */

}

區域性變數

public

class

final

}

內部類

分類:1.成員內部類

2.區域性內部類(包含匿名內部類)

成員內部類的定義格式

修飾符 class 類名稱

//....

} 注意:內用外,隨意訪問:外用內,需要內部類物件。

***********************************

如何使用成員內部類?有兩種方式:

1.間接方式:在外部類的方法當中,使用內部類;然後main只是呼叫外部類的方法。

2.直接方式,公式:

類名稱 物件名 = new 類名稱();

外部類名稱.內部類名稱 物件名 = new 外部類名稱().new 內部類名稱();

public

class

body

public

void

setname

(string name)

public

class

heart

}public

void

methodbody()

}

//如果出現了重名現象,那麼格式是:外部類名稱.this.外部類成員變數名

public

class

outer

}}

public

class

outerclass

}

如果乙個類是定義在乙個方法內部的,那麼這就是乙個區域性內部類。

「區域性」:只有當前所屬的方法才能使用它,出了這個方法外面就不能用了。

定義格式:

修飾符 class 外部類名稱

}}

public

class

inner

} inner1 inner1 =

newinner1()

; inner1.

methodinner()

;}}

如果介面的實現類(或者是父類的子類)只需要使用唯一的一次

那麼這種情況下就可以省略掉該類的定義,而改為使用【匿名內部類】

匿名內部類的定義格式:

介面名稱 物件名 = new 介面名稱();

另外還要注意幾點問題:

1.匿名內部類在建立物件的時候,只能使用唯一一次。如果希望多次建立物件,而且內容一樣的話,

那麼就必須使用單獨定義的實現類。

2.匿名物件,在【呼叫方法】的時候,只能呼叫唯一一次。

如果希望同乙個物件,呼叫多次方法,那麼必須給物件起個名字。

3.匿名內部類是省略了【實現類/子類名稱】,但是匿名物件是省略了【物件名稱】

public

inte***ce

myinte***ce

public

class

myinte***ceimp

implements

myinte***ce

}

public

class

impmyinte***ceimp};

inte***ce.

method()

;//匿名內部類重寫方法

myinte***ceimp myinte***ceimp =

newmyinte***ceimp()

};myinte***ceimp.

method()

;//這裡重寫了

newmyinte***ce()

}.method()

;//匿名物件匿名內部類

}}

final關鍵字和內部類

1.final關鍵字 final關鍵字表示不可改變的,最終的意思用於修飾變數方法和類。當final關鍵字修飾變數時,表示該變數是不可改變的量,即常量。當final關鍵字修飾方法的,是該方法不可被子類重寫,即最終方法。當final關鍵字修飾類時,而是開立不可被子類繼承,即最終類。2.內部類 在乙個類的...

static關鍵字和final關鍵字

static記住幾點 1.優先順序高,載入優先物件例項化 2.在記憶體中只分配一次 3.屬於類本身,所有例項共享,一處變,處處變 4.1 static不能訪問沒有static修飾的方法 因為不認識,物件例項後才能在外部使用方法 2 可以訪問static塊 3 未加static的方法可以訪問stati...

abstract關鍵字和final關鍵字

abstract類和abstract方法 用關鍵字abstract修飾的類 方法 稱為abstract類 方法 抽象類,抽象方法。對於abstract方法,沒有方法體,且以 結尾,且不允許使用final和abstract同時修飾乙個類或者方法,因為被abstract修飾的話,就無法被繼承 abstr...