java: private, protected, public
这三个 「可访问修饰符」,是一个老生常谈的话题了。在 C++ 中也有类似的概念。
按其修饰对象的不同,分为几种用法小记一下:
用于类
只有 public 可以修饰类;private 和 protected 不能修饰类。
- 使用 public 修饰的类,可以被其它「包」中的类访问。
- 不使用 public 修饰的类(也就是没有修饰符),只能被同一个「包」内的类访问。
用于类的成员
- private 修饰的成员,只能被在类内部使用,不能在类外部访问。
- 无修饰符的成员,只允许被同一包内的类访问。
- protected 修饰的成员,允许被同一包内的类访问,还允许被子类使用。
- public 修饰的成员,允许任意类访问。
这里描述的边界有三个:
- 类内和类外
- 包内和包外
- 是否是子类