說到修飾符,大家都知道有private deafult protect public,說到它們的區別,相信大家腦海會出現一張圖。
同乙個類
同包非子類
子類不同包非子類
private是否
否否default是是
否否protected是是
是否public是是
是是那麼怎麼從**層面解釋呢,學東西不能停留在理論層面,畢竟只是乙份實踐的工作。所以請看下面講解,畢竟實踐才是檢驗真理的唯一標準,說白了就是寫一些demo,驗證一下,工作中我們不了解某個方法或者某個類的時候,本人推薦寫一些demo,做一些test,本人覺得這是技巧之一。
本例項訪問方法只有兩種
建立物件訪問,形成組合關係
繼承類,形成繼承關係
寫demo驗證自己想法時候,推薦使用test框架,不同每次都寫乙個main方法,只要乙個註解@test就能解決問題
junit
junit
4.12
compile
也可以使用slf4j框架來列印資訊
org.slf4j
slf4j-api
1.7.5
org.slf4j
slf4j-******
1.6.4
也可以使用lombok框架,實現註解@getter和@setter代替getter方法和setter方法
org.projectlombok
lombok
1.16.16
需要建立物件 呼叫類中屬性
2.2.1 例項
package classtest;
import lombok.getter;
import lombok.setter;
import org.junit.test;
/** * @author buer
* @create 2019/4/28 10:06
* @description 父類
*/@getter
@setter
public
class
animal
}
2.2.2 結果
chen
ps:貼圖很麻煩 就貼字了
2.2.3 結論
在本類建立物件可以直接訪問private屬性字段
建立物件,訪問屬性
2.3.1 例項
package classtest;
@getter
@setter
public
class
classtest
}
另乙個類name屬性改變–》protected
package classtest;
@getter
@setter
public
class
animal
2.3.2 結果
chen
2.3.3 結論
在同乙個包中建立物件可以直接訪問,不同包下建立物件不能訪問default 預設屬性字段,例子省略
繼承父類,不需要建立父類物件,直接訪問protected屬性字段
2.4.1 例項
package butong;
import classtest.animal;
import org.junit.test;
/** * @author buer
* @create 2019/5/4 14:37
* @description
*/public
class
animalbutong
extends
animal
}
2.4.2 結果
chen
2.4.3 結論
在子類中可以直接進訪問父類字段,不需要建立物件
在不同包以及非子類關係下,建立物件可以訪問public屬性字段
2.5.1 例項
test屬性是public
package butong;
import classtest.animal;
import org.junit.test;
/** * @author buer
* @create 2019/5/4 14:37
* @description
*/public
class
animalbutong
}
2.5.2 結果
chen
2.5.3 結論
在不同包以及非子類關係下,建立物件可以訪問public屬性字段
修飾符 許可權修飾符
四種形式許可權修飾符的訪問情況 publicprotected不寫private 同乙個類中 四種都可以 同一包中的不同類 除了private剩下都可以 不同包下的子類 public protected 可以 不同包下的不同類 只有public可以 許可權修飾符 public protected 預...
C 修飾符 類修飾符和成員修飾符
c 修飾符之類修飾符 public internal partial abstract sealed static internal 本程式集內的成員可以訪問。partial 部分類,可以將乙個類分成幾部分寫在不同檔案中,最終編譯時將合併成乙個檔案,且各個部分不能分散在不同程式集中。c 修飾符之成員...
java修飾符 abstract 修飾符
abstract 修飾符 abstract 修飾符可以用來修飾類和成員方法 用 abstract 修飾的類表示抽象類,抽象類位於繼承樹的抽象層,抽象類不能被例項化,即不允許建立抽象類本身的例項。沒有用 abstract 修飾的類稱為具體類,具體類可以被例項化。用 abstract 修飾的方法表示抽象...