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