從實踐認識修飾符

2021-09-20 21:27:57 字數 2523 閱讀 7204

說到修飾符,大家都知道有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 修飾的方法表示抽象...