摘要:從實(shí)踐認(rèn)識修飾符修飾符分類說到修飾符,大家都知道有,說到它們的區(qū)別,相信大家腦海會出現(xiàn)一張圖。同一個類同包非子類子類不同包非子類是否否否是是否否是是是否是是是是那么怎么從代碼層面解釋呢,學(xué)東西不能停留在理論層面,畢竟只是一份實(shí)踐的工作。
從實(shí)踐認(rèn)識修飾符 1 修飾符分類
說到修飾符,大家都知道有private deafult protect public,說到它們的區(qū)別,相信大家腦海會出現(xiàn)一張圖。
? | 同一個類 | 同包非子類 | 子類 | 不同包非子類 |
---|---|---|---|---|
private | 是 | 否 | 否 | 否 |
default | 是 | 是 | 否 | 否 |
protected | 是 | 是 | 是 | 否 |
public | 是 | 是 | 是 | 是 |
那么怎么從代碼層面解釋呢,學(xué)東西不能停留在理論層面,畢竟只是一份實(shí)踐的工作。所以請看下面講解,畢竟實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),說白了就是寫一些demo,驗(yàn)證一下,工作中我們不了解某個方法或者某個類的時候,本人推薦寫一些demo,做一些test,本人覺得這是技巧之一。
2 代碼展示本實(shí)例訪問方法只有兩種
創(chuàng)建對象訪問,形成組合關(guān)系
繼承類,形成繼承關(guān)系
2.1 引入必要的maven寫demo驗(yàn)證自己想法時候,推薦使用test框架,不同每次都寫一個main方法,只要一個注解@test就能解決問題
junit junit 4.12 compile
也可以使用slf4j框架來打印信息
org.slf4j slf4j-api 1.7.5 org.slf4j slf4j-simple 1.6.4
也可以使用lombok框架,實(shí)現(xiàn)注解@getter和@setter代替getter方法和setter方法
2.2 privateorg.projectlombok lombok 1.16.16
需要創(chuàng)建對象 調(diào)用類中屬性
2.2.1 實(shí)例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 { public int id = 1; private String name="chen"; protected String parent = "parent"; @Test public void eat(){ Animal animal = new Animal(); System.out.println(animal.name); } }2.2.2 結(jié)果
chen
ps:貼圖很麻煩 就貼字了
2.2.3 結(jié)論在本類創(chuàng)建對象可以直接訪問private屬性字段
2.3 default創(chuàng)建對象,訪問屬性
2.3.1 實(shí)例package classtest; @Getter @Setter public class Classtest { @Test public void defaultTest(){ Animal animal = new Animal(); System.out.println(animal.name); } }
另一個類name屬性改變--》protected
package classtest; @Getter @Setter public class Animal { private int id; String name="chen"; protected String parent; }2.3.2 結(jié)果
chen
2.3.3 結(jié)論在同一個包中創(chuàng)建對象可以直接訪問,不同包下創(chuàng)建對象不能訪問default 默認(rèn)屬性字段,例子省略
2.4 protected繼承父類,不需要創(chuàng)建父類對象,直接訪問protected屬性字段
2.4.1 實(shí)例package butong; import classtest.Animal; import org.junit.Test; /** * @Author buer * @create 2019/5/4 14:37 * @description */ public class Animalbutong extends Animal{ @Test public void defaultTest(){ System.out.println(parent); } }2.4.2 結(jié)果
chen
2.4.3 結(jié)論在子類中可以直接進(jìn)訪問父類字段,不需要創(chuàng)建對象
2.5 public在不同包以及非子類關(guān)系下,創(chuàng)建對象可以訪問public屬性字段
2.5.1 實(shí)例test屬性是public
package butong; import classtest.Animal; import org.junit.Test; /** * @Author buer * @create 2019/5/4 14:37 * @description */ public class Animalbutong { @Test public void defaultTest(){ Animal animal = new Animal(); System.out.println(animal.test); } }2.5.2 結(jié)果
chen
2.5.3 結(jié)論在不同包以及非子類關(guān)系下,創(chuàng)建對象可以訪問public屬性字段
公眾號文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/74398.html
摘要:正則表達(dá)式小結(jié)創(chuàng)建方式直接量語法創(chuàng)建對象的語法語法屬性說明我們寫的正則表達(dá)式的規(guī)則,而則是規(guī)則的修飾符,為全局匹配,為區(qū)分大小寫的匹配,為多行匹配。注意正則表達(dá)式,一定要加上修飾符。 背景介紹 這幾天,剛來公司,導(dǎo)師安排點(diǎn)任務(wù)增加些功能,以便熟悉了開發(fā)環(huán)境。接到的任務(wù)中,有一個環(huán)節(jié)需要處理一個業(yè)務(wù)的json數(shù)據(jù),具有多級嵌套,我要做的是讓使用者可以修改其中的userName。 有兩個思...
摘要:什么是里氏替換原則某個對象實(shí)例的子類實(shí)例應(yīng)當(dāng)可以在不影響程序正確性的基礎(chǔ)上替換它們。除了在編程語言層面,在前端實(shí)際工作中,你可能會聽到一個叫作的概念,這個概念我認(rèn)為也是里氏替換原則的一直延伸。 這是理解SOLID原則,關(guān)于里氏替換原則為什么提倡我們面向抽象層編程而不是具體實(shí)現(xiàn)層,以及為什么這樣可以使代碼更具維護(hù)性和復(fù)用性。 什么是里氏替換原則 Objects should be rep...
摘要:對象創(chuàng)建與訪問指令雖然類實(shí)例和數(shù)組都是對象,但虛擬機(jī)對類實(shí)例和數(shù)組的創(chuàng)建和操作使用了不同的字節(jié)碼指令。異常處理指令在虛擬機(jī)中,處理異常語句不是由字節(jié)碼指令來實(shí)現(xiàn)的,而是采用異常表的方式。 《深入理解Java虛擬機(jī):JVM高級特性與最佳實(shí)踐(第二版》讀書筆記與常見面試題總結(jié) 本節(jié)常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): 簡單介紹一下Class類文件結(jié)構(gòu)(常量池主要存放的是...
摘要:通用解決辦法事件冒泡了嘛,那就阻止事件冒泡唄。很完美有沒有,這就不用在事件響應(yīng)邏輯中去處理事件細(xì)節(jié)了。 冒泡的表現(xiàn) 近期用vue做了一個需求,大概是同一個區(qū)域,點(diǎn)擊不同位置有不同的響應(yīng)函數(shù),還有個總的響應(yīng)函數(shù),好吧,如下圖所示: showImg(https://segmentfault.com/img/remote/1460000015852878?w=1962&h=392); 他們的...
摘要:首先把改成的形式這是一段測試文字綁定最后的顯示效果如下,如果要看具體的形式,可以在谷歌人員開發(fā)工具中自行查看指令的組成部分經(jīng)過上面的介紹,應(yīng)該對指令有一個大概的認(rèn)識,下面就來對指令的每一項(xiàng)進(jìn)行說明。 這篇筆記主要用來說明 Vue 中數(shù)據(jù)的定義和指令的一些特性,后續(xù)會做更深入的說明。 1.Vue中的data函數(shù) 1-1 使用data函數(shù) 由于使用的是單文件組件,因此 Vue 組件中的數(shù)據(jù)...
閱讀 472·2023-04-25 17:26
閱讀 1495·2021-08-05 09:58
閱讀 1959·2019-08-30 13:17
閱讀 944·2019-08-28 17:52
閱讀 1061·2019-08-26 18:27
閱讀 1413·2019-08-26 14:05
閱讀 3608·2019-08-26 14:05
閱讀 1586·2019-08-26 10:45