最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java類成員訪問權(quán)限控制知識總結(jié)

 更新時(shí)間:2020年04月20日 11:49:11   作者:知識追尋者  
這篇文章主要介紹了Java類成員訪問權(quán)限控制知識總結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

一 前言

這篇文章是很基礎(chǔ)的一文,沒多大深度,對于開發(fā)人員必然是熟練于心。本篇文章的主題是為什么java要設(shè)置類成員訪問級別?其原因也很簡單,就是為了面向?qū)ο蟮姆庋b特性;將類成員使用不同的訪問級別控制,在數(shù)據(jù)封裝后,其他的類成員想要訪問當(dāng)前類成員,就必須要有足夠的權(quán)限才能訪問;這樣做的目的就是我可以隨意修改不想讓其他類成員沒有權(quán)限訪問的數(shù)據(jù),只要約定好相關(guān)的協(xié)議,不影響其他類成員訪問即可;

二 權(quán)限修飾詞介紹

  • public 意指公有的意思,其修飾的成員權(quán)限最低,表示任何成員都可以訪問;注意點(diǎn)是一個(gè)java源文件中只能有一個(gè)類被聲明為public;
  • defaut 默認(rèn)級別,成員沒有修飾符號,在同一個(gè)包內(nèi)能被其他成員訪問;
  • protected 受保護(hù)的意思;表示子類能夠繼承父類的方法;在同一個(gè)包內(nèi)被其修飾的成員,其子類能夠訪問;注意點(diǎn)是不可以修飾外部類;
  • private 私有的意思;權(quán)限最高,表示只允許類內(nèi)部成員可以訪問;注意點(diǎn)是不可以修飾外部類;

修飾符 同一個(gè)類中 同一個(gè)包中的其他類 不同包的子類中 不同包的非子類中
public true true true true
protected true true true
default true true
private true

三 具體實(shí)施

3.1 public

在com.youku1327.base.authority2 包中創(chuàng)建了一個(gè)星球類,有個(gè)成員是shine表示光線,對應(yīng)的getShine方法使用public修改,方法意思是獲得光線;

package com.youku1327.base.authority2;
/**
 * @Author lsc
 * <p> 星球類 </p>
 */
public class Planet {
  private String shine = "好耀眼";
  public String getShine(){
    return shine;
  }
}

在 com.youku1327.base.authority1 包中創(chuàng)建類ZSZXZ, 使用import com.youku1327.base.authority2.Planet;導(dǎo)入 Planet星球類;在main方法中創(chuàng)建星球類,調(diào)用獲得光線的方法,得到輸出結(jié)果是 好耀眼;驗(yàn)證了public權(quán)限最低,不同包之間得非子類就可以訪問;

package com.youku1327.base.authority1;
import com.youku1327.base.authority2.Planet;
/**
 * @Author lsc
 * <p> </p>
 */
public class ZSZXZ {
  public static void main(String[] args) {
    // 創(chuàng)建星球?qū)嶓w
    Planet planet = new Planet();
    // 訪問公有成員
    String shine = planet.getShine();
    // 好耀眼
    System.out.println(shine);
  }
}

將 星球類的getShine方法修飾符號改為 protected;

package com.youku1327.base.authority2;
/**
 * @Author lsc
 * <p> 星球類 </p>
 */
public class Planet {
  private String shine = "好耀眼";
  protected String getShine(){
    return shine;
  }
}

在com.youku1327.base.authority1中創(chuàng)建Earth類繼承星球類Planet(初學(xué)者只要理解extends關(guān)鍵字表示繼承的意思),繼承的方法是 getShine方法,然后在主類中創(chuàng)建地球?qū)嵗{(diào)用getShine方法,實(shí)際上是調(diào)用 Planet的 getShine 方法(super.getShine(),super意指高級,表示父類 );驗(yàn)證了不同包的子類可以調(diào)用父類被protected修飾的成員;

package com.youku1327.base.authority1;

import com.youku1327.base.authority2.Planet;

/**
 * @Author lsc
 * <p> 地球類</p>
 */
public class Earth extends Planet {
  @Override
  protected String getShine() {
  	// 調(diào)用了父類的getShine方法
    return super.getShine();
  }
	// 執(zhí)行前注釋掉ZSZXZ中的main方法
  public static void main(String[] args) {
    // 創(chuàng)建地球
    Earth earth = new Earth();
    // 好耀眼
    System.out.println(earth.getShine());
  }
}

在回去看看原來的ZSZXZ類的getShine發(fā)現(xiàn)報(bào)錯(cuò)了;驗(yàn)證了不同包的非子類,使用protected修飾無法訪問;

3.3 default

將 Planet 星球類 的 getShine 方法的修飾符去掉,代碼如下

package com.youku1327.base.authority2;
/**
 * @Author lsc
 * <p> 星球類 </p>
 */
public class Planet {

  private String shine = "好耀眼";

  String getShine(){
    return shine;
  }
}

隨著發(fā)現(xiàn) 之前的地球類報(bào)錯(cuò)了,我們把整個(gè)地球類注釋掉;驗(yàn)證了default修飾的成員不能夸包訪問;

我們在 Planet 的同級包下創(chuàng)建Moon類,調(diào)用 Planet的getShine方法,成功執(zhí)行;驗(yàn)證了default修飾的成員能在同一個(gè)包中被訪問;

package com.youku1327.base.authority2;

/**
 * @Author lsc
 * <p> </p>
 */
public class Moon {
  public static void main(String[] args) {
    // 創(chuàng)建星球?qū)嶓w
    Planet planet = new Planet();
    // 訪問公有成員
    String shine = planet.getShine();
    // 好耀眼
    System.out.println(shine);
  }
}

3.4 private

將 Planet 星球類 的 getShine 方法的修飾符改為private;

package com.youku1327.base.authority2;

/**
 * @Author lsc
 * <p> 星球類 </p>
 */
public class Planet {
  private String shine = "好耀眼";
  private String getShine(){
    return shine;
  }
}

發(fā)現(xiàn) 之前的 的Moon類主方法中的getShine方法報(bào)錯(cuò)了,驗(yàn)證了private在同包不同類中不可以被訪問;getShine() 中可以使用 shine 字段,驗(yàn)證了同一個(gè)類中可以使用private修飾的成員;

 private String shine = "好耀眼";
  private String getShine(){
    return shine;
  }
}

發(fā)現(xiàn) 之前的 的Moon類主方法中的getShine方法報(bào)錯(cuò)了,驗(yàn)證了private在同包不同類中不可以被訪問;getShine() 中可以使用 shine 字段,驗(yàn)證了同一個(gè)類中可以使用private修飾的成員;

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • mybatis-plus的自動填充時(shí)間的問題(添加到數(shù)據(jù)庫的時(shí)間比當(dāng)前時(shí)間多4個(gè)小時(shí))

    mybatis-plus的自動填充時(shí)間的問題(添加到數(shù)據(jù)庫的時(shí)間比當(dāng)前時(shí)間多4個(gè)小時(shí))

    這篇文章主要介紹了mybatis-plus的自動填充時(shí)間的問題(添加到數(shù)據(jù)庫的時(shí)間比當(dāng)前時(shí)間多4個(gè)小時(shí)),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 關(guān)于spring中定時(shí)器的使用教程

    關(guān)于spring中定時(shí)器的使用教程

    大家應(yīng)該都有所體會,在很多實(shí)際的web應(yīng)用中,都有需要定時(shí)實(shí)現(xiàn)的服務(wù),下面這篇文章主要給大家介紹了關(guān)于spring中定時(shí)器的使用教程,對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • Java線程之間的共享與協(xié)作詳解

    Java線程之間的共享與協(xié)作詳解

    這篇文章主要介紹了Java線程之間的共享與協(xié)作詳解,進(jìn)程是操作系統(tǒng)進(jìn)行資源分配的最小單位,線程是進(jìn)程的一個(gè)實(shí)體,是CPU調(diào)度和分派的基本單位,它是比經(jīng)常更小的、能夠獨(dú)立運(yùn)行的基本單位
    2022-07-07
  • Java實(shí)現(xiàn)短信驗(yàn)證碼的示例代碼

    Java實(shí)現(xiàn)短信驗(yàn)證碼的示例代碼

    Java是一種流行的編程語言,驗(yàn)證碼是一種常用的網(wǎng)絡(luò)安全技術(shù)。Java發(fā)展至今,網(wǎng)上也出現(xiàn)了各種各樣的驗(yàn)證碼,下面是用Java實(shí)現(xiàn)短信驗(yàn)證碼的總結(jié),感興趣的可以了解一下
    2023-03-03
  • Java文件流關(guān)閉和垃圾回收機(jī)制

    Java文件流關(guān)閉和垃圾回收機(jī)制

    本文是關(guān)于Java IO文件流和垃圾回收問題,一個(gè)小的測試程序搞清楚Java IO的問題,希望能幫助有需要的小伙伴
    2016-07-07
  • SpringBoot整合Logback日志框架及高并發(fā)下的性能優(yōu)化

    SpringBoot整合Logback日志框架及高并發(fā)下的性能優(yōu)化

    在現(xiàn)代的Java應(yīng)用開發(fā)中,日志記錄是不可或缺的一部分,Spring Boot作為目前最流行的Java開發(fā)框架之一,默認(rèn)集成了Logback作為日志框架,Logback是Log4j的繼任者,具有更高的性能和更豐富的功能,本文將詳細(xì)介紹如何在Spring Boot中整合Logback日志框架
    2025-03-03
  • 使用@Order控制配置類/AOP/方法/字段的加載順序詳解

    使用@Order控制配置類/AOP/方法/字段的加載順序詳解

    這篇文章主要介紹了使用@Order控制配置類/AOP/方法/字段的加載順序詳解,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • SpringBoot配置文件中密碼屬性加密的實(shí)現(xiàn)

    SpringBoot配置文件中密碼屬性加密的實(shí)現(xiàn)

    本文主要介紹了SpringBoot配置文件中密碼屬性加密的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Map集合中獲取key-value值的實(shí)現(xiàn)方法

    Map集合中獲取key-value值的實(shí)現(xiàn)方法

    這篇文章主要介紹了Map集合中獲取key-value值的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用

    Java 面向?qū)ο蟮奶卣鹘馕雠c應(yīng)用

    Java 是面向?qū)ο蟮木幊陶Z言,對象就是面向?qū)ο蟪绦蛟O(shè)計(jì)的核心。所謂對象就是真實(shí)世界中的實(shí)體,對象與實(shí)體是一一對應(yīng)的,也就是說現(xiàn)實(shí)世界中每一個(gè)實(shí)體都是一個(gè)對象,它是一種具體的概念
    2021-11-11

最新評論

铅山县| 肃南| 香港 | 体育| 城固县| 武鸣县| 峨边| 炉霍县| 鲁甸县| 剑河县| 湟中县| 朔州市| 临沧市| 远安县| 临桂县| 长岭县| 昌宁县| 马鞍山市| 容城县| 大关县| 安溪县| 白银市| 沾益县| 诏安县| 江安县| 拜泉县| 枣阳市| 广河县| 察隅县| 芜湖县| 东方市| 南靖县| 琼海市| 安西县| 仁怀市| 彰化县| 富宁县| 墨玉县| 清新县| 红河县| 托克逊县|