这三个 「可访问修饰符」,是一个老生常谈的话题了。在 C++ 中也有类似的概念。

按其修饰对象的不同,分为几种用法小记一下:

用于类

只有 public 可以修饰类;private 和 protected 不能修饰类。

  • 使用 public 修饰的类,可以被其它「包」中的类访问。
  • 不使用 public 修饰的类(也就是没有修饰符),只能被同一个「包」内的类访问。

用于类的成员

  • private 修饰的成员,只能被在类内部使用,不能在类外部访问。
  • 无修饰符的成员,只允许被同一包内的类访问。
  • protected 修饰的成员,允许被同一包内的类访问,还允许被子类使用。
  • public 修饰的成员,允许任意类访问。

这里描述的边界有三个:

  1. 类内和类外
  2. 包内和包外
  3. 是否是子类

java: private, protected, public的更多相关文章

  1. private,protected,public和default的区别

    private,protected,public和default的区别 除了default以外,其他都是Java语言的关键字.default代表的是对类成员没有进行修饰的情况.它本身也代表了一种访问控 ...

  2. @private@protected@public@package

    @private@protected@public@package 为了强制一个对象隐藏其数据,编译器限制实例变量范围以限制其在程序中的可见性 但是为了提供灵活性,苹果也让开发者显式设置范围(四选一) ...

  3. oc 中四种实例变量的范围类型@private@protected@public@package

    To enforce the ability of an object to hide its data, the compiler limits the scope of instance vari ...

  4. iOS中四种实例变量的范围类型@private@protected@public@package

    文档上记录是这样的 The Scope of Instance Variables Toenforce the ability of an object to hide its data, the c ...

  5. 对private protected public的详解:

    #include <iostream> #include <stack> #include <queue> #include <exception> # ...

  6. Java中的private protected public和default的区别

    转至:http://blog.sina.com.cn/s/blog_74c571240101jaf5.html    类内部  本包  子类 外部包  public    √  √  √  √ pro ...

  7. 【Java】abstract,final,static,private,protected,public的区别

    [abstract]抽象的 1. abstract可以修饰类和成员方法,被abstract修饰的类称为抽象类,被abstract修饰成员方法叫抽象方法.抽象类不一定有抽象方法,但拥有抽象方法的类一定是 ...

  8. @private @protected @public

    @private  作用范围仅仅在自身类 @protected 作用范围在自身类及继承自己的子类(默认属性) @public 在系统中的不论什么地方都能够使用

  9. C++学习笔记14,private/protected/public继承,私有继承,保护继承,公有继承(五)(总结)

    各种继承方式: 特征 公有继承 保护继承 私有继承 公有成员变为 派生类的公有成员 派生类的保护成员 派生类的私有成员 保护成员变为 派生类的保护成员 派生类的保护成员 派生类的私有成员 私有成员变为 ...

随机推荐

  1. 给长标题加...css

    .wrap{ white-space:nowrap;overflow:hidden;text-overflow: ellipsis; } <th class="wrap"&g ...

  2. P2258 子矩阵 (搜索,动态规划)

    题目链接 Solution 搜索+DP. 刚好把搜索卡死的数据范围... 然后应该可以很容易想到枚举行的情况,然后分列去DP. 行的情况直接全排列即可,复杂度最高 \(O(C_{16}^{8})\). ...

  3. 挑战程序设计2 KD树

    Range Query - Range Search (kD Tree) Time Limit : 1 sec, Memory Limit : 262144 KB Japanese version i ...

  4. POJ3671 Dining Cows

    Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8126   Accepted: 3441 Description The c ...

  5. 乘法逆元__C++

    在开始之前我们先介绍3个定理: 1.乘法逆元(在维基百科中也叫倒数,当然是 mod p后的,其实就是倒数不是吗?): 如果ax≡1 (mod p),且gcd(a,p)=1(a与p互质),则称a关于模p ...

  6. Windows PowerShell Exit Codes

    Windows PowerShell Exit Codes PSMDTAG:FAQ: How can my script control the PowerShell exit code? Answe ...

  7. js simple drag.

    // by zhangxinxu welcome to visit my personal website http://www.zhangxinxu.com/ // zxx.drag v1.0 20 ...

  8. Linux 之 权限管理

    权限管理: 参考教程:[千峰教育] 命令: chmod: 作用:修改文件的权限(change mode) 说明:ls -l中第一列就是权限相关的信息,共11个字符. 第1位:文件类型(b/c/d/l/ ...

  9. idea http请求的插件(测试接口方便)

    http://blog.csdn.net/winter_chen001/article/details/77249029

  10. Day 20 迭代器、生成器

    一. 迭代器 1.迭代器协议是指:对象必须提供一个next方法,执行该方法要么返回迭代中的下一项,要么就引起一个StopIteration异常,以终止迭代 (只能往后走不能往前退) 2.可迭代对象:实 ...