Chapter 1 对象导论

对象具有状态(拥有内部数据),行为(方法)和标识(每一个对象都可以唯一的与其他对象区分开来)。

类描述了具有相同特性(数据元素)和行为(功能)的对象集合。

面向对象程序设计的挑战之一就是,在问题空间的元素与解空间内的对象建立一对一的映射。

每个对象都只能满足某些请求,这些请求由对象的接口(interface)定义,决定接口的便是类型(Type)

1.3 每个对象都提供服务

当你试图开发一个程序时,最好的方法之一就是将对象想象为“服务提供者”,程序本身向用户提供服务,它通过调用其他对象提供的服务来实现这一目的。你的目标就是去创建(或者在现有的代码库中寻找)能够提供理想的服务来解决问题的一系列对象。


1.7 伴随多态的可互换对象

一个非面向对象的编译器产生的函数调用使用前期绑定,编译器在编译时获得具体函数的调用地址,运行时将这个调用解析到将要被执行的代码的绝对地址。

在OOP中,消息发送到一个泛化对象时,程序直到运行时才能确定具体被调用代码的地址,所以使用了后期绑定的机制。

把导出类看做是它的基类的过程称为向上转型(upcasting)。

多态:当向一个对象发送消息时,即使涉及到向上转型,该对象也会执行正确的行为。

void doSomething(Shape shape){

shape.draw();

}

Circle circle=new Circle();  //Circle类是Shape类的导出类 

doSomething(circle);  //后期绑定使得程序在运行时才确定draw方法的地址,即Circle类的draw方法

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容