国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從實踐認識修飾符

shevy / 1426人閱讀

摘要:從實踐認識修飾符修飾符分類說到修飾符,大家都知道有,說到它們的區別,相信大家腦海會出現一張圖。同一個類同包非子類子類不同包非子類是否否否是是否否是是是否是是是是那么怎么從代碼層面解釋呢,學東西不能停留在理論層面,畢竟只是一份實踐的工作。

從實踐認識修飾符 1 修飾符分類

說到修飾符,大家都知道有private deafult protect public,說到它們的區別,相信大家腦海會出現一張圖。

? 同一個類 同包非子類 子類 不同包非子類
private
default
protected
public

那么怎么從代碼層面解釋呢,學東西不能停留在理論層面,畢竟只是一份實踐的工作。所以請看下面講解,畢竟實踐才是檢驗真理的唯一標準,說白了就是寫一些demo,驗證一下,工作中我們不了解某個方法或者某個類的時候,本人推薦寫一些demo,做一些test,本人覺得這是技巧之一。

2 代碼展示

本實例訪問方法只有兩種

創建對象訪問,形成組合關系

繼承類,形成繼承關系

2.1 引入必要的maven

寫demo驗證自己想法時候,推薦使用test框架,不同每次都寫一個main方法,只要一個注解@test就能解決問題

 
    junit
    junit
    4.12
    compile
 

也可以使用slf4j框架來打印信息


    org.slf4j
    slf4j-api
    1.7.5


    org.slf4j
    slf4j-simple
    1.6.4

也可以使用lombok框架,實現注解@getter和@setter代替getter方法和setter方法


    org.projectlombok
    lombok
    1.16.16
2.2 private

需要創建對象 調用類中屬性

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 {
    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 結果

chen

ps:貼圖很麻煩 就貼字了

2.2.3 結論

在本類創建對象可以直接訪問private屬性字段

2.3 default

創建對象,訪問屬性

2.3.1 實例
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 結果

chen

2.3.3 結論

在同一個包中創建對象可以直接訪問,不同包下創建對象不能訪問default 默認屬性字段,例子省略

2.4 protected

繼承父類,不需要創建父類對象,直接訪問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{

    @Test
    public void defaultTest(){
        System.out.println(parent);
    }
}
2.4.2 結果

chen

2.4.3 結論

在子類中可以直接進訪問父類字段,不需要創建對象

2.5 public

在不同包以及非子類關系下,創建對象可以訪問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 {

    @Test
    public void defaultTest(){
        Animal animal = new Animal();
        System.out.println(animal.test);
    }
}
2.5.2 結果

chen

2.5.3 結論

在不同包以及非子類關系下,創建對象可以訪問public屬性字段

公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/74398.html

相關文章

  • 正則表達小結與小知識點集錦

    摘要:正則表達式小結創建方式直接量語法創建對象的語法語法屬性說明我們寫的正則表達式的規則,而則是規則的修飾符,為全局匹配,為區分大小寫的匹配,為多行匹配。注意正則表達式,一定要加上修飾符。 背景介紹 這幾天,剛來公司,導師安排點任務增加些功能,以便熟悉了開發環境。接到的任務中,有一個環節需要處理一個業務的json數據,具有多級嵌套,我要做的是讓使用者可以修改其中的userName。 有兩個思...

    Shonim 評論0 收藏0
  • 讀懂 SOLID 的「里氏替換」原則

    摘要:什么是里氏替換原則某個對象實例的子類實例應當可以在不影響程序正確性的基礎上替換它們。除了在編程語言層面,在前端實際工作中,你可能會聽到一個叫作的概念,這個概念我認為也是里氏替換原則的一直延伸。 這是理解SOLID原則,關于里氏替換原則為什么提倡我們面向抽象層編程而不是具體實現層,以及為什么這樣可以使代碼更具維護性和復用性。 什么是里氏替換原則 Objects should be rep...

    vibiu 評論0 收藏0
  • 深入理解虛擬機之類文件結構

    摘要:對象創建與訪問指令雖然類實例和數組都是對象,但虛擬機對類實例和數組的創建和操作使用了不同的字節碼指令。異常處理指令在虛擬機中,處理異常語句不是由字節碼指令來實現的,而是采用異常表的方式。 《深入理解Java虛擬機:JVM高級特性與最佳實踐(第二版》讀書筆記與常見面試題總結 本節常見面試題(推薦帶著問題閱讀,問題答案在文中都有提到): 簡單介紹一下Class類文件結構(常量池主要存放的是...

    張憲坤 評論0 收藏0
  • 重新認識vue之事件阻止冒泡

    摘要:通用解決辦法事件冒泡了嘛,那就阻止事件冒泡唄。很完美有沒有,這就不用在事件響應邏輯中去處理事件細節了。 冒泡的表現 近期用vue做了一個需求,大概是同一個區域,點擊不同位置有不同的響應函數,還有個總的響應函數,好吧,如下圖所示: showImg(https://segmentfault.com/img/remote/1460000015852878?w=1962&h=392); 他們的...

    marek 評論0 收藏0
  • 002-讀書筆記-Vue官網 認識數據與指令

    摘要:首先把改成的形式這是一段測試文字綁定最后的顯示效果如下,如果要看具體的形式,可以在谷歌人員開發工具中自行查看指令的組成部分經過上面的介紹,應該對指令有一個大概的認識,下面就來對指令的每一項進行說明。 這篇筆記主要用來說明 Vue 中數據的定義和指令的一些特性,后續會做更深入的說明。 1.Vue中的data函數 1-1 使用data函數 由于使用的是單文件組件,因此 Vue 組件中的數據...

    hqman 評論0 收藏0

發表評論

0條評論

shevy

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<