1. 程式人生 > >Java中的訪問修飾符詳細解析

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 :該修飾符主要用於多執行緒共存的程式中的協調和同步。

相關推薦

Java訪問修飾詳細解析

1、類的修飾符分為:可訪問控制符和非訪問控制符兩種。 可訪問控制符是:公共類修飾符 public非訪問控制符有:抽象類修飾符 abstract ;最終類修飾符 final1 )公共類修飾符 public : Java 語言中類的可訪問控制符只有一個: public 即公共的

java訪問修飾

addclass ext pri post span 沒有 pretty pub () 較之c++ 中 public,proctected, private 三種訪問控制, java多了默認訪問控制。 java中四種訪問控制權限 簡單描寫敘述為一下四

Java訪問修飾作用範圍

Java中類的訪問許可權修飾符有private、default、protected、public,以下來分別介紹: (1)私有許可權(private) private可以修飾資料成員、構造方法及方法成員,不可以修飾類。被他修飾的成員,只能在定義他們的類中使用,在其他類中不能

java訪問修飾關鍵字的區別

public、protected、private以及預設default(不寫)  作用: 用來修飾類(介面、抽象類)、方法、屬性、構造方法、常量、主函式 類的成員不寫訪問修飾符時時預設default,預設情況對於同一個包而言等同於public 子類使用是需要繼承

javaVolatile修飾的含義

線程 代碼 sync 一個 vol tracking ava 變量 拷貝 在java語言中:為了獲得最佳速度,同意線程保存共享成員變量的私有拷貝。並且僅僅當線程進入或者離開同步代碼塊時才與共享成員變量的原始值進行對照。

Java修飾及其作用

java修飾符修飾符類型修飾符說明訪問控制修飾符defaultdefault (即缺省,什麽也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。privateprivate : 在同一類內可見。使用對象:變量、方法。 註意:不能修飾類(外部類)publicpublic : 對所有

Java基礎-訪問修飾

abs alt 什麽 出現 情況下 nal 繼承類 功能 初始化 訪問修飾符 default (即缺省,什麽也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。 private : 在同一類內可見。使用對象:變量、方法。 註意:不能修飾類(外部類

Javastatic修飾的作用

近日在做網路通訊伺服器和客戶端的Java語言開發,碰到了獲取客戶端長連線Channel物件,利用唯一物件Client的獲取方法getSingleClientInstance(),以為可以得到,但是顯示始終為空指標。之後又換了好幾種獲取值的辦法,一直是空指標。最後想著static修飾符的作用不

C#訪問修飾許可權解析以及預設許可權

C#的訪問修飾符只有四個,可以組合,常容易搞混淆,做個表方便看。部分內容轉自C#說明文件。 訪問修飾符是關鍵字,用於指定成員或型別已宣告的可訪問性。 public protected internal private 可使用訪問修飾符指定以下六個可訪問性級別:

Javavolatile修飾的理解

由於CPU的執行速度要高於記憶體讀取資料的速度,所以將需要運算的資料複製一份到CPU的快取記憶體中,也就是給當前執行執行緒的執行記憶體中放入副本。運算結束後再將高速緩衝中的資料重新整理到主存中。 引出問題 在併發環境下,資料運算之後重新整理到主存的時間是不確定的,所以會導致其

java訪問修飾

public:外部可以訪問 private:外部不可以訪問,內部可以訪問 什麼時候設定成public或者private:技巧預設全部設定為private,外部需要時就設定成public 一般情況下java的類的屬性為private,外部如果想訪問類的屬性怎麼辦? getter和setter方法:設定值

簡述Java訪問修飾型別?分別有什麼功能?

public 公開的,任何一個類都有可以訪問  protected 同包同類,只可被它的子類訪問    default 只能被同一個包中類訪問    private 私有的,只能在本類中被訪

C# 訪問修飾

用通過程式碼:  類內部 using System;class Mod...{    void defaultMethod()    ...{        Console.WriteLine("this is a default method");    }    pu

Javafinal修飾(6.4)

final關鍵字可用於修飾類,變數和方法。當final修飾變數時,表示該變數一旦獲得初始值就不能重新被賦值。 1. final成員變數 對於final修飾的成員變數而言,一旦有了初始值,就不能被重賦值,如果既沒有在定義成員變數時指定初始值,也沒有在初始化塊,構造器中為成員變數指定初始值,

C和Javastatic修飾的作用

C中的static C語言中的static作用有兩個:其一,增加區域性變數的生命週期,將其升級為全域性變數;其二,宣告變數或常量不可被其他檔案直接引用,必須通過標頭檔案包含的方式。 --------

java修飾final和static

1.final 修飾類時表明該類不能被繼承,自然類中的方法預設是final型的。 2.final 修飾方法時不允許被子類覆蓋,也就是可以被繼承。一個final類中,一個final方法只能被實現一次。 public class Test1 { public fi

java訪問修飾public,private,protected,以及不寫(預設)時的區別

訪問修飾符public,private,protected         類的成員不寫訪問修飾時預設為default。預設對於同一個包中的其他類相當於公開(public),對於不是同一個包中的其他類

javastatic修飾的程式碼的載入順序

1:首先載入被final static 修飾的原始資料型別的資料成員(若是其他型別的物件,包括原始資料型別的類包裝器,如Integer,也排在第3載入)。 2:其次載入處於static塊中的程式碼塊。 3:最後才是載入只被static修飾的資料成員。 測試例項: pack

Javafinal修飾對不同變數的不同影響

final修飾符可以用來修飾類、方法和變數,用於表示它修飾的類、方法和變數不可改變。final修飾變數時,表示該變數一旦獲得了初始值就不可被改變。 由於final變數獲取初始值之後就不能重新賦值,所以final修飾成員變數和區域性變數時有一定程度的不同。 final

Java基礎(二)----------JavaStatic修飾和final關鍵字

1.Static靜態修飾符 在程式中任何變數或者程式碼都是在編譯時,由系統自動分配記憶體來儲存的,而所謂靜態就是指在編譯後分配的記憶體會一直存在,直到程式退出時才會釋放記憶體空間。Java 中被 static 修飾的成員稱為靜態成員或類成員。它屬於整個類所有,而不是某個物件所有,即被類的所有物件