面向对象三大特征
- 继承 inheritance
- 子类可以从父类继承属性和方法
- 子类可以提供自己单独的属性和方法
- 封装 encapsulation
- 对外隐藏某些属性和方法
- 对外公开某些属性和方法
- 多态 polymorphism
- 为了适应需求的多种变化,使代码变得更加通用!
访问权限
成员变量
- public 公共的
- 可以被项目中的所有类访问 (项目可见性)
- protected 受保护的
- 可以被这个类本身访问
- 同一个包中的所有其他的类访问
- 被他的子类(同一个包以及不同包中的子类)访问
- default / friedly 默认的 / 友好的(包可见性)
- 被这个类本身访问
- private 私有的
- 只能被这个类本身访问(类可见性)
类
- public 公共的
- 可以被同一项目中的所有的类访问。(必须与文件名同名)
- default / friedly 默认的 / 友好的
- 可以被同一个包中的类访问
同一个类 | 同一个包 | 子类 | 所有类 | |
private | * | |||
default | * | * | ||
protected | * | * | * | |
public | * | * | * | * |
- private 仅仅是指封装的一种体现,类和方法也算是一种封装
要点:
- 类的属性处理
- 一般用private.(除非本属性确定会让子类继承)
- 提供相应的get/set方法来访问相关属性。这些方法通常是public,从而提供对属性的读取操作。
- 一些只用于本类的辅助性方法可以用 private
- 希望其他类调用的方法用 public