封装是面向对象的三大特征之一,它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。
对一个类或对象实现良好的封装,可以实现以下目的:

  • 隐藏类的实现细节
  • 让使用者只能通过事先预定的方法来访问数据,从而在该方法里加入控制逻辑,限制对成员变量不合理的访问。
  • 可进行数据检查,从而有利于保证对象信息的完整性。
  • 便于修改,提高代码的可维护性

访问控制符

Java访问控制级别由小到大排列如下:(后者包括前者的访问权限)

  • private:同一个类中可以访问
  • default:通一个包中
  • protected:子类中可以访问
  • public:全局范围内

如果一个Java源文件里定义的所有类都没有使用public修饰,则这个java源文件的文件名可以是一切合法的文件名;但如果一个Java源文件里定义了一个public修饰符的类,则这个源文件的文件名必须与public修饰的类的类名相同。

关于访问控制符的使用,存在如下几条基本准则。

  • 类里绝大部分成员变量都应该使用private修饰,一些辅助实现该类的其他方法也应该使用private修饰。
  • 如果某个类主要用作其他类的父类,该类里包含的大部分方法可能仅希望被其子类重写,而不希望被外界直接调用,则应该使用protected修饰这些方法。
  • 希望暴露出来给其他类自由调用的方法应该使用public修饰。

Zuckjet
437 声望658 粉丝

学如逆水行舟,不进则退。