面向对象——封装(隐藏)
类的结构:内部为私有的实现细节,外部为公共API
“公共API”是指对象的对外接口,由对象的方法构成,其他对象通过这些接口向对象发消息,请求对象的服务。对象的变量与实现构成了对象的内核,对象的方法包裹着对象的内核,使对象的内核能够对程序中其他对象隐藏。使用对象的方法将对象的变量与实现保护起来,就称为封装。对象中的数据封装同时也实现了对象的数据隐藏。这种结构称为理想结构,实际中对象可能需要暴露一些变量或隐藏它的一些方法。数据隐藏是通过对象成员的访问控制实现的。四种访问控制。
封装的意义:
① 模块化(对象的代码能够形成独立的整体,单独进行实现与维护,并使对象能够在系统内方便地进行传递)
② 保证对象数据的一致性并易于维护(接口通信,变量和实现隐藏,使得对象的私有信息被有效保护起来,防止外界对对象私有信息的修改,保证一致性。开发者可以随时修改数据和方法,不影响调用对象接口的其他程序)
封装可以实现以下目的:
① 隐藏类的实现细节
② 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问
③ 进行数据检查,有利于保证对象信息的完整性
④ 便于修改,提高代码可维护性
封装的含义:该隐藏的隐藏,该暴露的暴露
常量和static可以public,一般成员变量私有。
使用访问控制符,实现封装:
封装的要点:
①类的属性的处理
- 一般使用private(除非本属性确定会让子类继承)
- 提供相应的get/set方法来访问相关属性,这些方法通常是public,从而提供对属性的读取操作(boolean变量的get方法是用 is 开头)
②一些只用于本类的辅助性方法可以用private,希望其他类调用的方法用public