Java 的小白學(xué)習(xí)筆記四(修飾符)

一、訪問控制修飾符

1. default(什么也不寫):在同一包內(nèi)可見,不使用任何修飾符。

2. private:在同一類內(nèi)可見。不能修飾類(外部類)

3. public:對所有類可見。

4. protected:對同一包內(nèi)類和子類可見。不能修飾類(外部類)

default和public使用對象為類、接口、變量、方法。

private和protected使用對象為變量和方法。

訪問控制和繼承

父類聲明為public的方法子類中也必須為public、

父類中聲明為protected的方法在子類中聲明為public或protected,不能為private。

父類中聲明為private的方法,子類不能繼承

二、非訪問控制修飾符

1. static:修飾靜態(tài)方法和靜態(tài)變量。

靜態(tài)方法:不能使用非靜態(tài)變量。

靜態(tài)變量:只有一份拷貝,局部變量不能被聲明為static變量

2. final:修飾類、方法、變量。修飾的類不能被繼承,修飾的方法不能被繼承類重新定義,修飾的變量為常量,不可修改。

3. abstract:用來創(chuàng)建抽象類和抽象方法。

抽象類:

不能用來實(shí)例化對象,是為了將來對該類進(jìn)行擴(kuò)充。

若一個(gè)類包含抽象方法,該類一定要聲明為抽象類。

抽象類可以包含抽象方法和非抽象方法。

abstract class Dog{

? ? private String price;

? ? public abstract void goFast();//抽象方法

}

抽象方法:

是一種沒有任何實(shí)現(xiàn)的方法,具體實(shí)現(xiàn)由子類提供。

抽象方法不能被聲明為final和static。

任何繼承抽象類的子類必須實(shí)現(xiàn)父類的所有抽象方法,除非它也是抽象類。

抽象方法的聲明以分號(hào)結(jié)尾。

public abstract class Dog{

? ? abstract void m(); //抽象方法

}

class MyDog extends Dog{

? ? //實(shí)現(xiàn)抽象方法

? ? void m(){

? ? ...

? ? }

}

4. synchronized:該關(guān)鍵字聲明的方法同一時(shí)間只能被一個(gè)線程訪問

5. transient:序列化的對象包含被 transient 修飾的實(shí)例變量時(shí),java 虛擬機(jī)(JVM)跳過該特定的變量。

該修飾符包含在定義變量的語句中,用來預(yù)處理類和變量的數(shù)據(jù)類型。

6. volatile:volatile 修飾的成員變量在每次被線程訪問時(shí),都強(qiáng)制從共享內(nèi)存中重新讀取該成員變量的值。而且,當(dāng)成員變量發(fā)生變化時(shí),會(huì)強(qiáng)制線程將變化值回寫到共享內(nèi)存。這樣在任何時(shí)刻,兩個(gè)不同的線程總是看到某個(gè)成員變量的同一個(gè)值。

一個(gè) volatile 對象引用可能是 null。

上一篇:Java 的小白學(xué)習(xí)筆記三(數(shù)據(jù)類型和變量類型)

下一篇:Java的小白學(xué)習(xí)筆記五(Character類和String類)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容