面向对象
- 万物皆为对象。将对象视变量,它可以储存数据,可以在自身上执行操作,理论上可以抽取待解决的任何概念的构建,将其表示为对象。
- 程序是对象的集合他们通过发送消息来告诉彼此所需要做的。想要请求一个对象,就必须对该对象发送一条消息。具体的说,就是对某个特定的对象的方法调用请求。
- 每个对象都有自己的由其他对象所构成的存储。可以通过创建包括现有的对象的包的方式来创建新型的对象,在程序中构建复杂的体系,同事将其复杂性隐藏在对象的简单性背后。
- 每个对象都拥有其类型。每个对象都是某个类的一个实例,每个类最重要的区别就是区别与其他类的特性就是“可以发送什么样的消息给他”。
- 某个特定类型的所有对象都可以接收同样的消息。对象具有状态、行为和标识、这意味着每一个对象都可以拥有内部数据和方法(他们产生的行为),并且每一个对象都可以唯一的与其他对象区分开来,就是每一个对象在内存中都有唯一的地址(多态的表现,多态指同一个实体同时具有多种形式、多态就是允许方法重名 参数或返回值可以是父类型传入或返回。把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。)
每一个对象都有一个接口
- 每一个实体就是对象,每一个对象都属于定义了特性和行为的某个特定的类。
- 描述了具有相同特性(数据元素)和行为(功能)的对象集合,所有一个类实际上就是一个数据类型。
- 接口确定了对某一特定对象所能发出的请求。在程序中必须有满足这些请求的代码。这些代码与隐藏的数据一起构成了实现(向某个对象“发送消息”,这个对象就知道此消息的目的,然后执行代码)。
- 为了向对象发送消息,需要声明对象的名称,然后调用new 方法创建该类型的新对象
每个对象都提供服务
- 对象即是“服务提供者”。
- 程序设计要求,高内聚,低耦合。
被隐藏的具体实现
- 在任何相互关系中,具有关系所涉及的各方面都遵守的边界是十分重要的事情,因此访问控制是十分重要的事情,否则所有的东西都将暴露,(一、访问控制让程序员无法触及他们不应该触及的部分。二、如果接口和实现可以清晰的分离并且得到保护,你可以方便的改写某个特定的类)。
- Java的三个内部设定边界:public(公共的)、private(私有的)、protected(受保护的)这些访问指定词决定了紧随其后被定义的东西可以被谁使用
- public表示任何元素对人都是可用的
- private表示除了下创建者和类型的内部方法之外的 任何人都不能访问
- protected表示于本包和其子类可见
1. 父类的protected成员是包内可见的,并且对子类可见。
2. 若子类与父类不在同一包中,那么在子类中,子类实例可以访问其从父类继承而来的protected方法,而不能访问父类实例的protected方法。
权限控制表
修饰词 | 本类 | 同一个包的类 | 继承类 | 其他类 |
---|---|---|---|---|
private | √ | × | × | × |
无(默认) | √ | √ | × | × |
protected | √ | √ | √ | × |
public | √ | √ | √ | √ |
复用具体实现
实现类复用概述