導航:首頁 > 編程語言 > java所有訪問修飾符

java所有訪問修飾符

發布時間:2023-08-17 03:38:49

java 的訪問修飾符是什麼

Java中的訪問修飾符

Java面向對象的基本思想之一是封裝細節並且公開介面。Java語言採用訪問控制修飾符來控制類及類的方法和變數的訪問許可權,從而向使用者暴露介面,但隱藏實現細節。訪問控制分為四種級別:

(1)public: 用public修飾的類、類屬變數及方法,包內及包外的任何類(包括子類和普通類)均可以訪問;

(2)protected: 用protected修飾的類、類屬變數及方法,包內的任何類及包外那些繼承了該類的子類才能訪問(此處稍後解釋),protected重點突出繼承;

(3)default: 如果一個類、類屬變數及方法沒有用任何修飾符(即沒有用public、protected及private中任何一種修飾),則其訪問許可權為default(默認訪問許可權)。默

認訪問許可權的類、類屬變數及方法,包內的任何類(包括繼承了此類的子類)都可以訪問它,而對於包外的任何類都不能訪問它(包括包外繼承了此類的子類)。default重點突出包;

(4)private: 用private修飾的類、類屬變數及方法,只有本類可以訪問,而包內包外的任何類均不能訪問它。

網上一些資料及一些書上用表格對java訪問修飾符做了清楚的總結,如下表所示:

重要總結:通過上面的分析,我們可以看到:

1.public、private和protected對我們來說沒有任何異議。

2. 頂層類只能用public訪問修飾符和default(默認)訪問修飾符修飾,其中用默認修飾符修飾的類(及沒有任何修飾符的類,如class B{})不能被其他包中的類繼承,這也說明了default(默認)訪問修飾符突出的是包許可權

3. protected:本人做了一次實驗,發現在不同包的子類中,new一個父類對象,並用該父類對象去訪問父類中的用protected修飾的類屬變數和方法時不能訪問,而new一個子類對象時,子類對象可以訪問(說明protected修飾的類可以被其他包中的類繼承)。也可以在子類重寫父類的方法中使用super關鍵字調用。這豈不是和上面表格中的總結(紅色對勾)沖突了?本人也是百思不得其解。最後在網上找到了一個相對比較認可的解釋,如下:

protected修飾符的修飾的成員變數和方法也稱為受保護的成員變數和方法, 受保護的成員變數和方法可以在本類或同一個包中的其它類(包括子類)中通過類的實例進行訪問,也可以被同一個包中的類或不同包中的類繼承,但是不能在不同包中的其它類(包括子類)中通過類的實例進行訪問。

4. 如果一個類使用public修飾,那該類的類名必須與他所在的源文件名相同。一個.java源文件中有且只有一個public類,頂層類只能用public和默認修飾符(即無修飾符)修飾;

5.final修飾的類不能被繼承,沒有子類。

6.abstract修飾的類不能被實例化,必須被子類繼承。類只要有一個抽象方法就必定是抽象類,但抽象類不一定要有抽象方法。

最終總結,就一句話:protected修飾符所修飾的類(這句話中指父類)屬成員變數和方法,只可以被子類訪問,而不管子類是不是和父類位於同一個包中。default修飾符所修飾的類屬成員變數和方法,只可被同一個包中的其他類訪問,而不管其他類是不是該類的子類。protected屬於子類限制修飾符,而default屬於包限制修飾符。

㈡ java中修飾符有哪些

java的修飾符有:許可權修飾符:public、protected、default、private

修飾符:abstract、static、final

public 使用對象:最廣,類、介面、變數、方法

protected使用對象:變數、方法 注意:不能修飾類(外部類)

default 使用對象:類、介面、變數、方法。(即預設,什麼也不寫)

private 使用對象:變數、方法 注意:不能修飾類(外部類)

abstract使用對象:類、介面、方法

static 使用對象:類、變數、方法、初始化函數(注意:修飾類時只能修飾 內部類 )

final 使用對象:類、變數、方法

transient:告訴編譯器,在類對象序列化的時候,此變數不需要持久保存

volatile:指出可能有多個線程修改此變數,要求編譯器優化以保證對此變數的修改能夠被正確的處理

native:用該修飾符定義的方法在類中沒有實現,而大多數情況下該方法的實現是用C、C++編寫的。

synchronized:修飾方法,多線程的支持

類分外部類和內部類,他們的訪問控制是相同的嗎

外部類是相對於內部類而言的,內部類是定義在類裡面的類。

外部類的修飾符有:

default(預設,不寫):類定義時前面未加任何修飾符,表示同一個包中可見。

public:修飾類時表示該類能被項目中所有類可見

abstract:表示是抽象類

final:表示類不可以被繼承

scrictpf:(java關鍵字) 當對一個類或介面使用 strictfp 關鍵字時,該類中的所有代碼,包括嵌套類型中的初始設定值和代碼,都將嚴格地進行計算。嚴格約束意味著所有表達式的結果都必須是 IEEE 754 演算法對操作數預期的結果,以單精度和雙精度格式表示

內部類又分:成員內部類、局部內部類、靜態內部類、匿名內部類

成員內部類:作為外部類的一個成員存在,與外部類的屬性、方法並列

局部內部類:定義在外部類的方法體裡面的類

靜態內部類:使用static修飾的內部類

匿名內部類:就是沒有名字的內部類

成員內部類修飾符有:

public:

protected:

private:private不能修飾外部類,

abstract:

final:

static:可以當做普通類使用,而不用先實例化一個外部類。(用他修飾後,就成了靜態內部類了)

strictfp:(java關鍵字) 即 strict float point (精確浮點)。(可修飾類、介面、方法)

(2)java所有訪問修飾符擴展閱讀:

java中的類修飾符、成員變數修飾符、方法修飾符。

類修飾符:

public(訪問控制符),將一個類聲明為公共類,他可以被任何對象訪問,一個程序的主類必須是公共類。

abstract,將一個類聲明為抽象類,沒有實現的方法,需要子類提供方法實現。

final,將一個類生命為最終(即非繼承類),表示他不能被其他類繼承。

friendly,默認的修飾符,只有在相同包中的對象才能使用這樣的類。

成員變數修飾符:

public(公共訪問控制符),指定該變數為公共的,他可以被任何對象的方法訪問。

private(私有訪問控制符)指定該變數只允許自己的類的方法訪問,其他任何類(包括子類)中的方法均不能訪問。

protected(保護訪問控制符)指定該變數可以別被自己的類和子類訪問。在子類中可以覆蓋此變數。

friendly ,在同一個包中的類可以訪問,其他包中的類不能訪問。

final,最終修飾符,指定此變數的值不能變。

static(靜態修飾符)指定變數被所有對象共享,即所有實例都可以使用該變數。變數屬於這個類。

transient(過度修飾符)指定該變數是系統保留,暫無特別作用的臨時性變數。

volatile(易失修飾符)指定該變數可以同時被幾個線程式控制制和修改。

方法修飾符:

public(公共控制符)

private(私有控制符)指定此方法只能有自己類等方法訪問,其他的類不能訪問(包括子類)

protected(保護訪問控制符)指定該方法可以被它的類和子類進行訪問。

final,指定該方法不能被重載。

static,指定不需要實例化就可以激活的一個方法。

synchronize,同步修飾符,在多個線程中,該修飾符用於在運行前,對他所屬的方法加鎖,以防止其他線程的訪問,運行結束後解鎖。

native,本地修飾符。指定此方法的方法體是用其他語言在程序外部編寫的。

㈢ java 中有多少修飾符,它們的訪問許可權又是什麼

樓主問的是訪問控制符,只有訪問控制符才說訪問許可權

JAVA裡面 准確來講是有四個訪問控制符 默認、public、private、protected等四個

pravite 只能在同一個類中訪問
protected,可以在同一個類、同一個包、不同包中的子類訪問
默認:在同一個類、同一個包中訪問
public 同一個類,同一個包、不同包中的子類、不同包中的非子類

不知道樓主問的是不是這,如果不是可以再留言

㈣ java 修飾符有哪幾個

1、類的修飾符分為:可訪問控制符和非訪問控制符兩種。

可訪問控制符是:公共類修飾符 public

非訪問控制符有:抽象類修飾符 abstract ;最終類修飾符 final

1 )公共類修飾符 public : Java 語言中類的可訪問控制符只有一個: public 即公共的。每個 Java 程序的主類都必須是 public 類作為公共工具供其它類和程序使用的應定義為 public 類。

2 )抽象類修飾符 abstract :凡是用 abstract 修飾符修飾的類,被稱為抽象類。所謂抽象類是指這種類沒有具體對象的一種概念類。這樣的類就是 Java 語言的 abstract 類。

3 ) 最終類修飾符 final :當一個類不可能有子類時可用修飾符 final 把它說明為最終類。被定義為 final 的類通常是一些有固定作用、用來完成某種標准功能的類。

4 )類預設訪問控制符:如果一個類沒有訪問控制符,說明它具有預設的訪問控制符特性。此時,這個類只能被同一個包中的類訪問或引用。這一訪問特性又稱為包訪問性。

2 .域的控制修飾符也分為:可訪問控制符和非訪問控制符兩類。

可訪問控制符有 4 種:公共訪問控制符: public ;私有訪問控制符: private ;保護訪問控制符: protected ;私有保護訪問控制符: private protected

非訪問控制符有 4 種:靜態域修飾符: static ;最終域修飾符: final ;易失 ( 共享 ) 域修飾符: volatile ;暫時性域修飾符: transient

1 )公共訪問控制符 public :用 public 修飾的域稱為公共域。如果公共域屬於一個公共類,則可以被所有其它類所引用。由於 public 修飾符會降低運行的安全性和數據的封裝性,所以一般應減少 public 域的使用。

2 )私有訪問控制符 private : 用 private 修飾的成員變數 ( 域 ) 只能被該類自身所訪問,而不能被任何其它類 ( 包括子類 ) 所引用。

3 )保護訪問控制符 protected :用 protected 修飾的成員變數可以被三種類所引用:①該類自身;②與它在同一個包中的其它類;③在其它包中的該類的子類。使用修飾符 protected 的主要作用是允許其它包中它的子類來訪問父類的特定屬性。

4 )私有保護訪問控制符 private protected :用修飾符 private protected 修飾的成員變數可以被該類本身或該類的子類兩種類訪問和引用。

5 )靜態域修飾符 static :用 static 修飾的成員變數僅屬於類的變數,而不屬於任何一個具體的對象,靜態成員變數的值是保存在類的內存區域的公共存儲單元,而不是保存在某一個對象的內存區間。任何一個類的對象訪問它時取到的都是相同的數據;任何一個類的對象修改它時 , 也都是對同一個內存單元進行操作。

6 )最終域修飾符 final :最終域修飾符 final 是用來定義符號常量的。一個類的域 ( 成員變數 ) 如果被修飾符 final 說明,則它的取值在程序的整個執行過程中都是不變的。

7 )易失 ( 共享 ) 域修飾符 volatile :易失 ( 共享 ) 域修飾符 volatile 是用來說明這個成員變數可能被幾個線程所控制和修改。也就是說在程序運行過程中,這個成員變數有可能被其它的程序影響或改變它的取值。因此,在使用中要注意這種成員變數取值的變化。通常 volatile 用來修飾接受外部輸入的域。

8 )暫時性域修飾符 transient :暫時性域修飾符 transient 用來定義一個暫時性變數。其特點是:用修飾符 transient 限定的暫時性變數,將指定 Java 虛擬機認定該暫時性變數不屬於永久狀態,以實現不同對象的存檔功能。否則,類中所有變數都是對象的永久狀態的一部分,存儲對象時必須同時保存這些變數。

3 .方法的控制修飾符也分為:可訪問控制符和非訪問控制符兩類。

可訪問控制符有 4 種:公共訪問控制符: public ;私有訪問控制符: private ;保護訪問控制符: protected ;私有保護訪問控制符: private protected

非訪問控制符有 5 種:抽象方法控制符: abstract ;靜態方法控制符: static ;最終方法控制符: final ;本地方法控制符: native ;同步方法控制符: synchronized

1 )抽象方法控制符 abstract :用修飾符 abstract 修飾的方法稱為抽象方法。抽象方法是一種僅有方法頭,沒有方法體和操作實現的一種方法。

2 )靜態方法控制符 static :用修飾符 static 修飾的方法稱為靜態方法。靜態方法是屬於整個類的類方法;而不使用 static 修飾、限定的方法是屬於某個具體類對象的方法。 由於 static 方法是屬於整個類的,所以它不能操縱和處理屬於某個對象的成員變數,而只能處理屬於整個類的成員變數,即 static 方法只能處理 static 的域。

3 )最終方法控制符 final :用修飾符 final 修飾的方法稱為最終方法。最終方法是功能和內部語句不能更改的方法,即最終方法不能重載。這樣,就固定了這個方法所具有的功能和操作,防止當前類的子類對父類關鍵方法的錯誤定義,保證了程序的安全性和正確性。所有被 private 修飾符限定為私有的方法,以及所有包含在 final 類 ( 最終類 ) 中的方法,都被認為是最終方法。

4 )本地方法控制符 native :用修飾符 native 修飾的方法稱為本地方法。為了提高程序的運行速度,需要用其它的高級語言書寫程序的方法體,那麼該方法可定義為本地方法用修飾符 native 來修飾;

5 )同步方法控制符 synchronized :該修飾符主要用於多線程共存的程序中的協調和同步。

本文出自http://hi..com/lifa868/blog/item/d91674ecb346c64779f0557d.html

閱讀全文

與java所有訪問修飾符相關的資料

熱點內容
日本蘋果66g多少錢 瀏覽:93
個性的文件夾名稱 瀏覽:697
怎麼設置文件打開密碼 瀏覽:811
手機版qq客服代碼怎麼用 瀏覽:24
fme可以打開哪些文件 瀏覽:339
好看的qq密碼 瀏覽:293
安卓唯一標識有哪些 瀏覽:243
win10ime 瀏覽:271
手機號大數據保護停機是什麼意思 瀏覽:81
兩個蘋果手機怎麼隔空投送app 瀏覽:903
ps修改有褶皺的文件 瀏覽:417
javadbfreader 瀏覽:307
蘋果手機數字代碼是什麼 瀏覽:66
驅動程序順序安裝腳本 瀏覽:665
word文件里怎樣查重 瀏覽:219
mx5系統基帶版本 瀏覽:184
ntlea全域通win10 瀏覽:171
qq怎麼查看別人的收藏 瀏覽:135
地震三參數matlab程序 瀏覽:57
怎樣給優盤文件加密軟體 瀏覽:7

友情鏈接