1. 程式人生 > >JAVA關鍵字 三(類,方法和變數修飾符)

JAVA關鍵字 三(類,方法和變數修飾符)

本篇關鍵字:abstract    class    extends    final    implements    interface    native   

                     new    static   strictfp    synchronized    transient    volatile

1.abstract

abstract關鍵字可以修改類或方法。abstract類可以擴充套件(增加子類),但不能直接例項化。                                   

abstract方法不在宣告它的類中實現,但必須在某個子類中重寫。

2.class    

class 關鍵字用來宣告新的 Java 類,該類是相關變數和/或方法的集合。

類是面向物件的程式設計方法的基本構造單位。類通常代表某種實際實體,如幾何形狀或人。類是物件的模板。

每個物件都是類的一個例項。要使用類,通常使用 new 操作符將類的物件例項化,然後呼叫類的方法來訪問類的功能。

3.extends    

extends 關鍵字用在 classinterface 宣告中,用於指示所宣告的類或介面是其名稱後跟有 extends 關鍵字的類或介面的子類。子類繼承父類的所有 publicprotected 變數和方法。 子類可以重寫父類的任何非 final 方法。

一個類只能擴充套件一個其他類。

4.final    

final 關鍵字可以應用於類,以指示不能擴充套件該類(不能有子類)。                                                                               

final關鍵字可以應用於方法,以指示在子類中不能重寫此方法。

一個類不能同時是 abstract 又是 finalabstract 意味著必須擴充套件類,final 意味著不能擴充套件類。

5.implements    

implements 關鍵字在 class 宣告中使用,以指示所宣告的類提供了在 implements 關鍵字後面的名稱所指定的介面中所宣告的所有方法的實現。類必須提供在介面中所宣告的所有方法的實現。

一個類可以實現多個介面。

6.interface    

nterface 關鍵字用來宣告新的 Java 介面,介面是方法的集合。

介面是 Java 語言的一項強大功能。任何類都可宣告它實現一個或多個介面,這意味著它實現了在這些介面中所定義的所有方法。 實現了介面的任何類都必須提供在該介面中的所有方法的實現。                            

 一個類可以實現多個介面

7.new

new 關鍵字用於建立類的新例項。 
new 關鍵字後面的引數必須是類名,並且類名的後面必須是一組構造方法引數(必須帶括號)。 
引數集合必須與類的構造方法的簽名匹配。

8.static    

static 關鍵字可以應用於內部類(在另一個類中定義的類)、方法或欄位(類的成員變數)。 
通常,static 關鍵字意味著應用它的實體在宣告該實體的類的任何特定例項外部可用。
static(內部)類可以被其他類例項化和引用(即使它是頂級類)。

static 欄位(類的成員變數)在類的所有例項中只存在一次。 

示例:工廠模式程式碼,比較全面的展示了上述關鍵字

https://download.csdn.net/download/qq_36110736/10493906

-------------------------------------分割線-----------------------------------------------

以下主要是native、執行緒、Java虛擬機器相關,能力有限沒有演示程式碼

如果有大佬有相關資料請附上鍊接,感激不盡

9.native    

native 關鍵字可以應用於方法,以指示該方法是用 Java 以外的語言實現的。

10.strictfp    

strictfp的意思是FP-strict,也就是說精確浮點的意思。在Java虛擬機器進行浮點運算時,如果沒有指定strictfp關鍵字時,Java的編譯器以及執行環境在對浮點運算的表示式是採取一種近似於我行我素的行為來完成這些操作,以致於得到的結果往往無法令人滿意。而一旦使用了strictfp來宣告一個類、介面或者方法時,那麼所宣告的範圍內Java的編譯器以及執行環境會完全依照浮點規範IEEE-754來執行。因此如果想讓浮點運算更加精確,而且不會因為不同的硬體平臺所執行的結果不一致的話,那就請用關鍵字strictfp。
可以將一個類、介面以及方法宣告為strictfp,但是不允許對介面中的方法以及建構函式宣告strictfp關鍵字

11.synchronized   

synchronized 關鍵字可以應用於方法或語句塊,併為一次只應由一個執行緒執行的關鍵程式碼段提供保護。 
synchronized 關鍵字可防止程式碼的關鍵程式碼段一次被多個執行緒執行。
如果應用於靜態方法,那麼,當該方法一次由一個執行緒執行時,整個類將被鎖定。 
如果應用於例項方法,那麼,當該方法一次由一個執行緒訪問時,該例項將被鎖定。 
如果應用於物件或陣列,當關聯的程式碼塊一次由一個執行緒執行時,物件或陣列將被鎖定。

12.transient    

Java的serialization提供了一種持久化物件例項的機制。當持久化物件時,可能有一個特殊的物件資料成員,我們不想用serialization機制來儲存它。為了在一個特定物件的一個域上關閉serialization,可以在這個域前加上關鍵字transient
     transient是Java語言的關鍵字,用來表示一個域不是該物件序列化的一部分。當一個物件被序列化的時候,transient型變數的值不包括在序列化的表示中,然而非transient型的變數是被包括進去的。

13.volatile

volatile 關鍵字用於表示可以被多個執行緒非同步修改的成員變數。