zoukankan      html  css  js  c++  java
  • 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 —— 仅对本类可见

    便更易于理解了!

  • 相关阅读:
    观察者模式的新纪录
    字符串和json之间的互相转化
    改变自己:工作几年就该给自己“清零”啦
    观察者模式的记录
    background-position的百分比
    豌豆荚前端面试中的一个算法题
    javascript的原型与继承(2)
    javascript的原型和继承(1)
    百度客户端首页的图片轮换效果
    javascript中闭包的概念
  • 原文地址:https://www.cnblogs.com/relaxx/p/12913987.html
Copyright © 2011-2022 走看看