.java修飾符大全詳解


Java中共有四種訪問限制修飾符:private,public,protected,friendly
friendly是默認的,而且不是Java中的關鍵字.
private:私有,內部訪問,很好理解
public:共有,都可以訪問,更加好理解
friendly:同一個包可以訪問
protected:同一個包或者子類可以訪問
如果我只想讓子類訪問的話就無能為力了(protected減去friendly),這種情況是很普遍的,在父類中定義的方法我可能只想讓子類調用,就像Object中定義的clone方法就只是給子類調用的,因為Object是根類,當然所有類都是他的子類,這個沒有什么問題.

修飾符

成員訪求

構造方法

成員變量

局部變量

abstract(抽象的)

static (靜態的)

public(公共的)

protected(受保護的)

 

private(私有的)

synchronized(同步的)

native(本地的)

transient(暫時的)

volatie(易失的)

final(不要改變的)

             

 

類 修飾符 

Public

可以從其他類中訪問

Abstract

本類不能被實例化

Final

不能再聲明子類

構造函數修飾符  

Public

可以從所有的類中訪問

Protected

只能從自己的類和它的子類中訪問

Private

只能在本類中訪問

域/成員變量修飾符  

Public

可以從所有的類中訪問

Protected

只能從本類和它的子類中訪問

Private

只能從本類中訪問它

Static

對該類的所有實例只能有一個域值存在

transient

不是一個對象持久狀態的一部份

Volatile

可以被異步的線程所修改

final

必須對它賦予初值並且不能修改它

局部變量 修飾符 

final

必須對它賦予初值並且不能修改它

方法修飾符 

Public

可以從所有的類中訪問它

Protected

只能從本類及其子類中訪問它

Private

只能從本類中訪問它

abstract

沒有方法體,屬於一個抽象類

final

子類不能覆蓋它

static

被綁定於類本身而不是類的實例

native

該方法由其他編程語言實現

asnchronized

在一個線程調用它之前必須先給它加

類的修飾符整合

一.類

類的修飾符:

Public:可以在其他任何類中使用,默認為統一包下的任意類。

Abstract:抽象類,不能被實例化,可以包含抽象方法,抽象方法沒有被實現,無具體功能,只能衍生子類。

Final:不能被繼承。

二.變量

變量修飾符:

一個類的成員變量的聲明必須在類體中,而不能在方法中,方法中聲明的是局部變量。

1.       可訪問修飾符:

2.       static:類變量:一個類所擁有的變量,不是類的每個實例有的變量。類變量是指不管類創建了多少對象,系統僅在第一次調用類的時候為類變量分配內存,所有對象共享該類的類變量,因此可以通過類本身或者某個對象來訪問類變量。

3.       final:常量。

4.       volatile:聲明一個可能同時被並存運行的幾個線程所控制和修改的變量。

實例變量:和類變量對應,即每個對象都擁有各自獨立的實例變量。

三.方法:(和變量對象分為實例方法和類方法,並用有無static修飾區別)

類方法:使用static關鍵字說明的方法

1.第一次調用含類方法的類是,系統只為該類創建一個版本,這個版本被該類和該類的所有實例共享。

2.類方法只能操作類變量,不能訪問實例變量。類方法可以在類中被調用,不必創建實例來調用,當然也可以通過對象來調用。

實例方法:實例方法可以對當前對象的實例變量操作,而且可以訪問類變量。

方法可以重載,要求:方法名相同,但是參數必須有區別。(參數不同可以使類型不同,順序不同,個數不同)

方法的返回類型:若無返回類型,則聲明為void.

方法中的變量作用域:

1.       成員變量:整個類。

2.       局部變量:定義起到方法塊結束為止。

3.       方法參數:整個方法或者構造方法。

4.       異常處理參數:參數傳遞給異常處理方法。

構造方法:和類同名的方法。為新建對象開辟內存空間后,用於初始化新建的對象。不能用對象顯式的調用。

靜態初始化器:格式:static{<賦值語句組>}

靜態初始化器與構造方法的區別: 

靜態初始化器

構造方法

對類的靜態域初始化

對新建的對象初始化

類進入內存后,系統調用執行

執行new后自動執行

屬特殊語句(僅執行一次)

屬特殊方法

方法的修飾符:

抽象方法:用abstract修飾,只有聲明部分,方法體為空,具體在子類中完成。

類方法:靜態方法,用static修飾,

1.       調用時,使用類名作為前綴,而不是類的某個實例對象名

2.       不能被單獨對象擁有,屬於整個類共享。

3.       不能處理成員變量。

最終方法:用final修飾,不能被子類重新定義的方法。

本地方法:用native修飾的方法,表示用其他語言書寫的特殊方法,包括C,C++,FORTRAN,匯編語言等。

四.類成員的訪問控制符:

即類的方法和成員變量的訪問控制符,一個類作為整體對象不可見,並不代表他的所有域和方法也對程序其他部分不可見,需要有他們的訪問修飾符判斷。

權限如下: 

訪問修飾符

同一個類

同包

不同包,子類

不同包,非子類

private

 

 

 

protected

 

public

默認

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM