許可權修飾符和內部類

2022-09-09 00:27:26 字數 1884 閱讀 2989

final關鍵字代表最終、不可改變的。學習了繼承後,我們知道子類可以在父類的基礎上改寫父類內容,比如方法重寫。為了避免隨意改寫的情況發生,j**a提供了 final 關鍵字,用於修飾不可改變內容 。主要表現在使用final關鍵字後:

① 修飾類

格式:

public final class 類名稱
含義:當前這個類不能有任何子類(可以理解為太監類)。所以也無法對成員方法進行覆蓋重寫

② 修飾方法

格式如下:

修飾符 final 返回值型別 方法名(引數列表)
含義:用final修飾的方法可以被繼承,但是不能被子類的重寫

注意:對於類和方法來說,abstract和final關鍵字不能同時使用。因為矛盾

③ 修飾變數

引用型別來說,不可變指的是變數中的位址值不可改變

修飾成員變數

j**a中提供了四種訪問許可權符,訪問許可權大小:public > protected > (default) > private

不同許可權的服務能力:

public

protected

default(空的)

private

同一類中√√

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

√不同包的子類√√

不同包中的無關類

√可見,public具有最大許可權。private則是最小許可權 。編寫**時,如果沒有特殊的考慮,建議這樣使用許可權

注:不加許可權修飾符,其訪問能力與default修飾符相同

很多時候我們建立類的物件的時候並不需要使用很多次,每次只使用一次,這個時候我們就可以使用內部類

內部類就是在乙個類的內部在定義乙個類,比如,a類中定義乙個b類,那麼b類相對a類來說就稱為內部類,而a類相對b類來說就是外部類了

內部類不是在乙個j**a原始檔中編寫倆個平行的倆個類,而是在乙個類的內部再定義另外乙個類。 我們可以把外邊的類稱為外部類,在其內部編寫的類稱為內部類

內部類分為四種 :

① 成員內部類

訪問特點

使用成員內部類

內部類的重名變數訪問

② 靜態內部類

使用static修飾的內部類就叫靜態內部類 。下面複習static的用法:

(1). 一般只修飾變數和方法,平常不可以修飾類,但是內部類卻可以被static修飾

(2). static修飾成員變數:整個類的例項共享靜態變數

(3). static修飾方法:靜態方法,只能夠訪問用static修飾的屬性或方法,而非靜態方法可以訪問static修飾的方法或屬性

(4). 被static修飾了的成員變數和方法能直接被類名呼叫

(5). static不能修飾區域性變數,平常就用來修飾成員變數和方法

注意:靜態內部類中可以宣告靜態方法和靜態變數,但是非靜態內部類中就不可以宣告靜態方法和靜態變數

③ 區域性內部類

區域性內部類是在乙個方法內部宣告的乙個類,可以訪問外部類的成員變數及方法。如果區域性內部類中要訪問該內部類所在方法中的區域性變數,那麼這個區域性變數就**必須是有效final修飾的 **

public class outer 	}}

}

區域性內部類一般的作用跟在成員內部類中總結的差不多 ,但有兩點要注意

區域性內部類不能通過外部類物件直接例項化,而是在方法中例項化出自己來,然後通過內部類物件呼叫自己類中的方法

④ 匿名內部類【重點】

如果介面的實現類(或者是父類的子類)只需要使用唯一的一次,此時可以省略該類的定義,改為使用匿名內部類

前提格式

注意的問題

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

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

許可權修飾符與內部類

一 包 1.包包就是對類進行分類管理 com.fruit.manage.add com.fruit.manage.update 2.包的命名規則 公司網域名稱的倒序 全部小寫 多個包之間用.分割 3.乙個類中的組成順序 package import class 二 許可權修飾符 public 本類 ...

javase 包,許可權修飾符內部類

包,許可權修飾符內部類 包的特點 可以有多層 不同包下的檔名可以重複 包的宣告必須是第一行 許可權修飾符 public 當前類,相同包下不同的類,不同包下的類 default 當前類,相同包下不同的類 private 當前類 protected 當前類,相同包下不同的類 default 當前包下使用...