(1)对象。
对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。
(2)对象的状态和行为。
对象具有状态,一个对象用数据值来描述它的状态。 对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。 对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中
(3)类。
具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象,类实际上就是一种数据类型。 类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。 类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。
(4)类的结构。
在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。
①一般--具体结构称为分类结构,也可以说是“或”关系,或者是“is a”关系。
②整体--部分结构称为组装结构,它们之间的关系是一种“与”关系,或者是“has a”关系。 (5)消息和方法。
对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。 类中操作的实现过程叫做方法,一个方法有方法名、返回值、参数、方法体。
面向对象是相对于面向过程而言的,面向对象相比面向过程有很多优点。比如,面向对象的一个特点就是继承,只要我们的程序用面向对象的方法写出来了,当客户要求改变程序的作用时,我们只要在原来的程序上继承一个新的类的可以完成;而面向过程很可能要把原来的程序推到,再重新编写,这样就会很麻烦。从某一个方面说,就是面向对象程序设计的可变化更好。
面向对象技术主要包括面向对象分析OOA,向对象设计OOD和面向对象编程OOP三大块内容。
单从面向对象编程角度来说,所谓面向对象主要是运用封装、继承、多态三个核心特性组织程序代码,实现程序可读性、易维护性、可重用性等目标。
需要注意的一点就是区别与基于对象编程的区别:基于对象不支持继承。