Java細節02——類、接口、構造器、屬性、方法的修飾符

(一)類的修飾符

PUBLIC | PROTECTED | PRIVATE |ABSTRACT |STATIC | FINAL |STRICT;

(1)public 公有的,abstract抽象的,final最終的這幾個修飾詞是很好理解的。

public:在一個Java文件中,必須有一個public類(或者接口),它用於控制訪問權限;

abstract:抽象類則說明這個類是抽象的,它可能具有抽象方法(需要由子類來實現);

final:用於表示這個類是最終的,也就是無法被繼承了。這是一種犧牲擴展性來換取安全的手段。

(2)protected保護的,private私有的,static靜態的 這幾個似乎只能用於內部類,如下描述:

class Dianxin{
	private class Cookies{
		
	}
	
	protected class Snack{
		
	}
	
	static class Sandwitch{
		
	}
}

(3)STRICT代表strictfp 用於描述精度

總結大概如下:


內部類
訪問控制 抽象 靜態 浮點
public abstract static strictfp  class   
protected final      
private        
 
外部類則無法使用protected保護的,private私有的,static靜態的這三個描述符。

(二)接口的修飾符

PUBLIC | PROTECTED | PRIVATE | ABSTRACT | STATIC | STRICT;

可以與類做對比,缺少一個final,因爲接口總是abstract的。

(三)構造器的修飾符

PUBLIC | PROTECTED | PRIVATE

構造器只有訪問限定修飾。

(四)屬性的修飾符

PUBLIC | PROTECTED | PRIVATE  | STATIC | FINAL | TRANSIENT | VOLATILE;

其他屬性修飾符沒有太多可說的

transient: 用於標識一個變量在持久化過程中,它不需要保存。(也就是類似於一些temp之類的數據)

volatile:防止編譯器優化;其修飾的成員變量在每次被線程訪問時,都強迫從共享內存中重讀該成員變量的值。而且,當成員變量發生變化時,強迫線程將變化值回寫到共享內存。這樣在任何時刻,兩個不同的線程總是看到某個成員變量的同一個值。

(五)方法的修飾符

PUBLIC | PROTECTED | PRIVATE |ABSTRACT |STATIC | FINAL | SYNCHRONIZED | NATIVE | STRICT;

與“類”的修飾作比較,發現方法的修飾多了兩個限定詞SYNCHRONIZED | NATIVE

其中synchronized用於表示方法是線程同步的,

而native表示這個方法是用C/C++編寫的本地方法。

發佈了34 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章