面向对象的程序是一个由多个对象组成的、能够互相通信的系统。
对象:
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。
类的定义:
类是具有相同属性和服务的一组对象的集合,它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。
在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。
类与对象的关系:
类实例化成对象,对象抽象化为类
封装:
封装就是把对象的属性和服务结合成一个独立的相同单位,并尽可能隐蔽对象的内部细节。
第一个涵义:把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位(即对象)。
第二个涵义:信息隐蔽,即尽可能隐蔽对象的内部细节,对外形成一个边界(或者说形成一道屏障),只保留有限的对外接口使之与外部发生联系。
封装的原则在软件上的反映是:要求使对象以外的部分不能随意存取对象的内部数据(属性),从而有效的避免了外部错误对它的“交叉感染”,是软件错误能够局部化,大大减少了差错和排错的难度。
可见性:对象的属性和服务允许对象外部存取和引用的程度。
继承:
特殊类的对象拥有其一般类的全部属性与服务,称作特殊类对一般类的继承。
多继承:一个类可以是多个一般类的特殊类,它从多个一般类中继承了属性与服务。
通常我们称一般类为父类(superclass),特殊类为子类(subclass).
消息:
消息就是向对象发出的服务请求,它应该包含下述信息:提供服务的对象标识、服务标识、输入信息和回答信息。
服务通常被称为方法或函数。
多态性:
对象的多态性是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。
多态,封装,继承。
主动对象:
主动对象是一组属性和一组服务的封装体,其中至少有一个服务不需要接收消息就能主动执行。
java中拥有main方法的对象就是主动对象。
面向对象的程序设计方法:
OOA--Object Oriented Analysis面向对象的分析
OOD--Object Oriented Design面向对象的设计
OOI--Object Oriented Implementation面向对象的实现