看了孫鑫的視頻,對Java的中對類,方法和變數的修飾符做了個小總結;
|
Public |
Private |
protected |
預設(default)
|
解釋說明:
|
在任何類中都能調用
|
只有在同類中可以調用
|
同包,子類(包括不同包的子類)可以調用;
|
同包中的所有類都可以訪問,但是如果子類(不在同一個包中),則不能訪問
|
同類
|
可以
|
可以
|
可以
|
可以
|
同包
|
可以
|
|
可以
|
可以
|
子類
|
可以
|
|
可以
|
|
通用性
|
強 |
|
|
|
而如用final修飾是為了確保某個函數的行為在繼承過程中不變,如java中的String類不可以被繼承,而用final修飾的方法不能被覆蓋;有時候我們在final前面加上static,大家知道,static修飾的變數是屬於類的本身的,其實用static
final
來修飾變數是為了節約記憶體中的空間,因為不用static修飾的變數,每個對象在記憶體中都有一份它的拷貝,那麼則視為一種冗餘,其實final是最終的,我們是不希望它被改變的,那麼就在聲明前加上static
這樣的話,就可以節約記憶體空間,何樂而不為呢;相比於在子類中不能繼承,實際上private,static自然就是final方法;
而對於abstract修飾的方法,稱為抽象方法,抽象方法的類必須為抽象類別;抽象類別不可以執行個體化,因為它的行為沒有確定;因此,我們可以將一個類聲明為一個抽象類別,避免由這個類產生的任何對象;
native方法是Java使用者可以使用,但是不可以編寫的方法,這個是java本地介面,由於筆者閱曆有限,所以不做解釋;
interface中的所有方法都是public abstract,當不加修飾符的時候,預設的就是public
abstract; 還有一點值得注意,當實作類別中沒有完全實現interface中的方法時,則這個類是抽象類別(abstract);當然介面中聲明方法不可以使用上面的native,static,final,synchronized,private,protected等修飾符;預設的介面只能在一個包中被使用,介面中可以有資料成員,而這些成員預設是的public
static final的靜態常量;
synchronized同步是Java線程中用過,等看到線程的時候,在做解釋;
望高手不吝賜教