抽象过程
- 万物皆对象
- 程序是对象的集合,它们通过发送消息来告知彼此所要做的。
- 每个对象都有自己的由其他对象所构成的存储
- 每个对象都拥有其类型
- 某一特定类型的所有对象都可以接收同样的信息
对象具有状态,行为和标识。则意味着每个对象都可以拥有内部数据和方法,每一个对象在内存中都有一个唯一的地址
每一个对象都有一个接口
所有的对象都是唯一的,但同时也是具有相同特征和行为的对象所归属的类的一部分。
在程序执行期间具有不同的状态而其他方面都相似的对象会被分组到对象的类中,这就是关键字class的由来
每一个对象都属于定义了特征和行为的某个特定的类。
因为类描述了具有相同特性(数据类型)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。
被隐藏的具体实现
- 权限控制的第一个存在原因就是让客户端程序员无法触及他们不应该触及的部分。
- 权限控制的第二个存在的原因就是允许库设计者可以改变内部的工作方式而不用担心会影响到客户端程序员。
Java用三个关键字在类内部设定边界:public,private,protected。这些访问指定词决定了紧跟其后被定义的东西可以被推荐谁使用。
- public 表示紧随其后的元素对于任何人都是可用的。
- private 这个关键字表示除类型创建者和类型内部方法之外的任何人都不能访问的元素,private就像你与客户端程序员之间的一堵墙,如果有人试图访问private成员就会在编译时得到错误
- protected关键字和private作用相当,差别仅在于继承的类可以被访问protected成员,但是不能访问private成员。
java还有一种默认的访问权限,当没有使用任何访问权限词,它将发挥作用。这种权限被称为包访问权限,在这种权限下,类可以访问在同一个包中的其他类的成员,但是在包之外如同指定了private一样
复用具体的实现
最简单的复用 某个类的方式就是直接使用该类的一个对象,此外也可以将那个类的一个对象置于某个新的类中。我们称其为“创建了一个成员对象”。新的类可以是任意数量,任意类型的其他对象以任意可以实现新的类中想要的功能的方式组成。因为是在使用现有的类合成新的类。所以这种概念被称为组合,如果组合是动态发生的,那么它通常被称为聚合。
继承
- 将继承现有类型时,也就创造了新的类型。这个新的类型不仅包括了现有类型的所有成员(尽管private成员被隐藏起来,并且不可以访问),而且更重要的是它复制了基类的接口。也就是说,所有可以发给父类对象的消息同时也可以发给子类对象。由于通过发送给类的消息的类型可知类的类型,所以这也就意味着子类与父类具有相同的类型。
- 覆盖:想要覆盖某个方法,可以直接在子类中创建该方法的新定义即可