Java final 許可權 內部類

2021-08-26 02:38:07 字數 1533 閱讀 8212

final代表最後的,最終的

可以用來修飾,類、方法、變數

被final修飾的類,不能被繼承,太監了(不能有子類)

final不能和abstract共用

不能被子類覆蓋重寫,但是可以過載

區域性變數(定義引數的位置,方法中的變數,靜態**塊)

一旦賦值就不能再賦值,即使賦值相同

成員變數在類中方法外;成員變數有預設值

加final需要在構造方法中進行賦值,或者直接賦值

final修飾的靜態常量名要大寫,多個單詞間用_隔開

變數為引用型別,加上final,只能賦值一次,但可以修改物件的內容

前提在乙個專案中

public 公有的:任何地方都可以進行訪問

protected 受保護的:同包可以訪問,不同包的子類也可以訪問

default空 預設的:同包可以訪問

private 私有的:只有本類可以訪問

public

protected

default(空的)

private

同一類中√√

√同一包中(子類與無關類)√√

√不同包的子類√√

不同包中的無關類√

可見,public具有最大許可權。private則是最小許可權。

乙個類a中定義另乙個類b

有了內部類才可以更好物件導向,用類描述事物

public

class

a}

內部類在類中方法外

public

class

a }

public

void

methoda()

}

使用(建立內部類的物件)

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

a.b 物件名 = new a().new b();

this.變數名;//內部類訪問當前類中的成員變數

外部類名.this.變數名;//內部類訪問外部類成員變數

定義在類中方法中

public

class 外部類名}}

只能在方法中使用,在開發中很少用

匿名內部類必須繼承乙個父類或者實現乙個父介面

為了簡化**

格式

new 抽象類/介面().成員方法名();
開發中會給new的物件賦值乙個變數,表示起了乙個名字,直接使用變數名.方法名呼叫重寫的方法

開發中,new 介面名再使用alt+enter快捷鍵快速生成匿名內部類

內部類訪問許可權

內部類 一種隱藏和組織 的模式 1 普通內部類擁有其外圍類的所有元素的訪問權,沒有任何限制 2 靜態內部類只能訪問外部類的靜態成員變數 class outer 3 定義在方法和作用域內的內部類,可以訪問方法和作用域外的變數,作用域內的變數必須是final型別的,因為生命週期不同。外部不能訪問該內部類...

final 許可權 內部類

代表最終不可變的。用法 1 用來修飾乙個類 不能有子類,所以其中所有的方法都不嗯呢該被覆蓋重寫。2 用來修飾乙個方法 方法不能被覆蓋重寫。3 用來修飾乙個區域性變數 variable 一次賦值,終生不變。4 用來修飾乙個成員變數 一次賦值,終生不變。沒有預設值需要手動賦值。final修飾的類又叫 太...

內部類,匿名內部類,許可權修飾符

二.匿名內部類 三.許可權修飾符 public class a 格式 外部類物件.內部類物件 物件名 new 外部類物件.new 內部類物件 不使用匿名內部類呼叫抽象物件中的方法 建立子類,繼承父類 重寫方法 建立子類物件 呼叫重寫方法 使用匿名內部類 無需建立子類直接new父類即可 格式一 new...