1.抽象过程
Alan kay 总结的面向对象的编程语言:
- 万物皆为对象。
- 程序是对象的集合,他们通过发送信息来告诉彼此所要做的。
- 每个对象都有自己的由其他对象所构成的存储。
- 每个对象都拥有其类型。
- 某一特定类型的所有对象都可以接受同样的信息。
Booch对对象有一个更简洁的描述:对象是具有状态,行为和标识。这意味着每一个对象哪个都可以拥有内部数据(他们给出了该对象的状态)和方法(它们产生行为),并且每一个对象都可以与其他对象区分开来,就是说每一个对象在内存中有唯一的地址。
2.每一个对象都有一个接口
创建抽象数据类型(类)是面向对象程序设计的基本概念之一。
类描述了具有相同特性(数据元素)和行为(功能)的对象集合,所以一个类实际上就是一个数据类型。
面向对象程序设计的挑战之一,就是问题空间的元素与解空间的对象之间建立一一映射。
3.被隐藏的具体实现
访问控制存在的一个原因是让客户端程序员无法触及他们不应该触及的部分,第二个原因是允许库设计者改变类内部的工作方式。
Java用3个关键字在类的内部设定边界:public,private,protected。
public:表示紧随其后的元素对任何人都是可用的。
private:表示除了类创建者和类的内部方法之外,其他人都不能访问的元素。
protected:与private相似,差别在于继承的类可以访问。
什么都不加的话,称为包访问权限,类可以访问同一个包中的其他类成员。
4.复用的具体实现
使用现有类合成新的类称为组合。如果组合是动态的,则被称为聚合。
在建立新类时,首先考虑组合,因为他更加灵活。
5.单根继承结构
单根继承结构保证所有对象都具备某些功能。
单根继承结构使垃圾回收器的实现变得容易。
6.容器
不同的容器提供了不同类型的接口和外部行为。
不同类型的容器对某些操作具有不同的效率。
7.参数化类型
Java SE5出现之前,容器中存储的对象都只具有Java中的通用类型:Object
Java SE5重大变化之一就是增加了参数化类型 : 范型。ArrayList<?>=new ArrayList<?>();
原文地址:http://blog.51cto.com/13569015/2059927