封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。在面向对象程式设计方法中,封装Encapsulation是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
- 既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性
- 只要用户接口不改变,任何封装体内部的改变都不会对软件系统的其他部分造成影响 封装隐藏实现细节,并对外提供了公共的访问方式
- 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问
- 要访问该类的代码和数据,必须通过严格的接口控制。
- 封装最主要的功能在于能修改自己的实现代码,而不用修改那些调用代码的程序片段
- 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性。
方法或者类都是一个封装体。Java的基本封装单元就是类class,组成类的代码或数据称为类的成员。
封装三大好处
- 良好的封装能够减少耦合
- 类内部的结构可以自由修改
- 可以对成员进行更精确的控制
- 隐藏信息,实现细节
类定义规则:要求类内高内聚,类间弱耦合
- 封装确实可以使容易地修改类的内部实现,而无需修改使用了该类的客户代码
抽象
是人类解决问题的基本法宝。良好的抽象策略可以控制问题的复杂程度,增强系统的通用性和可扩展性
抽象主要包括过程抽象和数据抽象
- 过程抽象是将问题域中具有明确功能定义的操作抽取出来,并将其作为一个实体看待
- 数据抽象是较过程抽象更高级别的抽象方式,将描述客体的属性和行为绑定在一起,实现统一的抽象,从而 达到对现实世界客体的真正模拟
范围限定词
- private 私有的
- protected 受保护的
- 默认(就是没有限定词)
- public 公共的
public class A{} 外部的独立类上可以使用的范围限定词有public和默认两种;内部类可以使用4大范围限定词中的任意一个。
在一个.java文件中可以定义无数个class,但是只能定义一个public class,而且要求文件名称和public class类名称必须一致
public类可以在任意包中进行引用,没有范围限定词的class则只能在同包中访问
属性上的范围限定词
public 表示到处可见
protected表示同包或者子类中可见处可见<