• Java中访问控制修饰符的详解和示例——Java学习


    Java中的四个访问控制修饰符

    简述

    在Java中共有四个:

    1. public —— 对外部完全可见
    2. protected —— 对本包和所有子类可见
    3. 默认(不需要修饰符)—— 对本包可见
    4. private —— 仅对本类可见

    从上到下,public的开放程度最高。


    - 对外完全可见 对本包和所有子类可见 仅对本包可见 仅对本类可见
    访问控制修饰符 Public Protected 默认(无修饰符) Private
    同一包中的其它类
    同一包中的子类
    不同包中的其它类
    不同包中的子类

    简言之就是,public全开放,protected对本包和子类(不论是不是在本包中)开放,默认的只对本包开放(不论是不是子类),private仅对本类开放(只有定义它的类内部才能够使用,非常不开放)。
    建议在定义每个类的私有字段,也就是成员变量时使用private修饰符,这样才能够确保类的封装性。

    实例演示

    定义两个包:A包和B包。
    A包中有类:aFather 、aClass、aSon;B包中有类:bClass、bSon
    定义类:aSon、bSon是aFather的子类。具体如下
    在这里插入图片描述

    包A

    aFather.java

    定义了一个父类aFather,和各实例字段,如下:
    在这里插入图片描述

    aClass.java

    aClass为A包中的一个普通类。
    在这里插入图片描述
    显然在同一包中,除了**private** ,都可以正常访问父类的Public、Protected 和默认定义的实例字段。

    aSon.java

    aSon为A包(同一包)中的aFather类的子类
    在这里插入图片描述
    同样,同一包中的子类可以正常访问父类的Public、Protected、默认定义 的实例字段。

    包B

    bClass.java

    bClass为B包中的一个普通类。
    在这里插入图片描述
    可以看出,非aFather子类的类:bClass 只能访问A包中类的 Public 的实例字段。

    bSon.java

    bSon为B包中的,aFather类(A包中)的子类。
    在这里插入图片描述
    而B包中的bSon类 是A包中aFather类的子类,可以访问父类(超类)中由Public、Protected定义的实例字段,其他的无法访问。

    由此看出,开头所说:

    1. public —— 对外部完全可见
    2. protected —— 对本包和所有子类可见
    3. 默认(不需要修饰符)—— 对本包可见
    4. private —— 仅对本类可见

    便更易于理解了!

  • 相关阅读:
    SQL compute by 的使用
    C# DES加密/解密字符串
    SET NOCOUNT { ON | OFF }
    SQL Server游标的使用 转
    SQL优化的一些总结
    精确获取时间(QueryPerformanceCounter)测试程序效率
    ajax的使用原理
    jq三级导航菜单可修改为二级、四级等导航菜单
    本地搭建PHP环境
    固定在屏幕底部的层
  • 原文地址:https://www.cnblogs.com/relaxx/p/12913987.html
Copyright © 2020-2023  润新知