OOP的特征
1、万物皆对象
2、程序是一组对象,它们通过发送消息来相互告知要做什么。
3、每个对象都有自己的存储空间,可容纳其他对象。或者说,通过封装现有对象,可制作出新型对象。所以,尽管对象的概念非常简单,但在程序中却可达到任意高的复杂程度。
4、每个对象都有一个类。
5、一个类的多个对象可以接受相同的信息(类定义接口)。
一个类有数据,方法,和单一的内存地址。
类描述了一系列有相同的数据元素和函数的的对象
每一个对象提供一个服务,进量不要将太多功能都写进一个类中。
封装(使用访问控制)
1、避免应用程序员修改他们不应该修改的部分。
2、隐藏功能内部复杂的实现,只提供应用程序员所必要的部分,也方便了应用程序员。
3、使得实现和接口独立,更改实现不影响接口。
Java类中的访问权限
public: 表示任何人都可以访问和使用该元素;
private: 除了类本身和类内部的方法,外界无法直接访问该元素。
protected: 子类可以访问
default: 可以被同一包中的访问
复用的两种方法
1、直接使用类的对象
2、将一个类的对象作为另一个类的成员变量使用。新的类可以是由任意数量和任意类型的其他对象构成。
- 聚合关系(Aggregation)中,整件不会拥有部件的生命周期,所以整件删除时,部件不会被删除。再者,多个整件可以共享同一个部件。(比如空调和遥控器)
- 组合关系(Composition)中,整件拥有部件的生命周期,所以整件删除时,部件一定会跟着删除。而且,多个整件不可以同时共享同一个部件。这个区别可以用来区分某个关联关系到底是组合还是聚合。(汽车和引擎)
两个类生命周期不同步,则是聚合关系,生命周期同步就是组合关系。
早期绑定和晚期绑定
向上转型
把子类当成其基类来处理的过程叫做“向上转型”(upcasting)
单继承
java 单继承有两个方面,第一,所有类都继承于一个共同基类,Object;单继承为什么可以让垃圾回收更方便?
第二,一个类只能继承一个父类,通过extends实现;可以实现多个接口,通过implements实现,可以变相的实现多继承。
Collection
List, Set, Map, Stack,Queue, Tree, Stack, Heap
泛型,参数化类型机制(Parameterized Type Mechanism)
List<String> arrayList = new ArrayList<String>();
泛型帮助我们在编译器检查类型
“异常”(Exception)是一个从出错点“抛出”(thrown)后能被特定类型的异常处理程序捕获(catch)的一个对象。它不会干扰程序的正常运行,仅当程序出错的时候才被执行。
网友评论