1. 程式人生 > >java 類、屬性、方法修飾符總結

java 類、屬性、方法修飾符總結

修飾符可以分為訪問修飾符(訪問控制符)和非訪問修飾符(非訪問控制符)

訪問修飾符:顧名思義如果在根據訪問範圍內可以控制訪問。

非訪問修飾符:實現一些其他的功能。

 

一、類修飾符

       訪問修飾符:public、預設修飾符            非訪問修飾符有: abstract 、 final

 

      1、public(公共類修飾符/許可權修飾符) : 一個java檔案可以寫多個類,但是隻能有一個類是用public進行修飾的(也就是所說的主類),且這個類需要和檔名保持一致。表示所有包中的類都可以訪問。

      2 、abstract (抽象類修飾符):用 abstract 修飾符修飾類表示該類是一個抽象類。所謂抽象類是指沒有例項的抽象概念類    (沒有具體物件)。

            注意:一個抽象類中可以沒有抽象方法,但是有抽象方法的類必須是一個抽象類

      3、 final (最終類修飾符):如果一個類被final進行修飾表示該類是最終類,不能被繼承。

      4、類預設(沒有public)訪問控制符:如果一個類沒有訪問控制符,說明它具有預設的訪問控制符特性。表示該類只能被本包中的其他類來進行訪問。這一訪問特性又稱為包訪問性。

 

在定義一個類的成員(包括屬性(變數)和方法)時,可以使用private(私有修飾符)、protected(保護訪問修飾符)、public(許可權修飾符)等關鍵字說明這個成員的訪問許可權。

  訪問範圍:

        public:可被所有類引用;
        protected:可被該類自身、子類(只能在子類中通過子類物件來呼叫)、同一包中的其他類引用;
        預設(沒有訪問控制符):可被該類自身、本包中的類引用;
        private:僅可被該類自身引用和修改,不能被其他任何類(包括子類)引用。

 

二、屬性修飾符

  訪問修飾符: public、 private、 protected、 private protected、預設修飾符

  非訪問修飾符: static、 final 、 volatile 、 transient

      1、 public(許可權修飾符) :用 public 修飾的域稱為公共域。如果公共域屬於一個公共類,則可以被所有其它類所引用。由於 public 修飾符會降低執行的安全性和資料的封裝性,所以一般應減少 public 域的使用。

      2、 private(私有修飾符) : 僅可被該類自身引用和修改,不能被其他任何類(包括子類)引用。

      3、 protected (保護訪問修飾符)可被該類自身、子類(只能在子類中通過子類物件來呼叫)、同一包中的其他類引用。

      4、 private protected(私有保護訪問修飾符) :可被該類本身或該類的子類兩種類訪問和引用。

      5、預設(沒有訪問控制符):可被該類自身、本包中的類引用。

      6、static (靜態域修飾符 ):類成員變數,對所有的例項一致,引用是字首可使用類名或物件名。

注意:用 static修飾的成員變數僅屬於類的變數,而不屬於任何一個具體的物件,靜態成員變數的值是儲存在類的記憶體區域的公共儲存單元,任何一個類的物件訪問它時取到的都是相同的資料;任何一個類的物件修改它時 , 也都是對同一個記憶體單元進行操作。

      6、 final (最終域修飾符):數值不變常量,定義同時應對其進行初始化,不一定,也可以利用建構函式給不同的物件賦不同的值。

      7、 volatile (易失 ( 共享 ) 域修飾符):是用來說明這個成員變數可能被幾個執行緒所控制和修改。在使用中要注意這種成員變數取值的變化。通常 volatile 用來修飾接受外部輸入的域。

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

 

 

三、方法修飾符

   訪問修飾符:public 、 private、 protected 、 private protected

   非訪問修飾符:abstract、static、 final、 native 、synchronized

      1、 abstract (抽象方法控制符):抽象方法,只有方法的定義而沒有方法體和操作實現。需要在子類中通過重寫該方法來實現。

      2、 static(靜態方法控制符) :靜態方法,又稱類方法。字首可使用類名或物件名。在方法體中只能使用類的static變數和static方法。靜態方法是屬於整個類的類方法;而不使用static 修飾、限定的方法是屬於某個具體類物件的方法。

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

      4、 native(本地方法修飾符):為了提高程式的執行速度,需要用其它的高階語言書寫程式的方法體,那麼該方法可定義為本地方法用修飾符 native 來修飾。

      5、 synchronized(同步方法修飾符) :該修飾符主要用於多執行緒共存的程式中的協調和同步。