博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

类和对象的区别

Posted on 2011-07-14 12:08  ☆Keep★Moving☆  阅读(3528)  评论(0编辑  收藏  举报

1.类和对象的区别

具有相同或相似性质的对象的抽象就是类。因此,对象的抽象是类,类的具体化就是对象,也可以说类的实例是对象。

  类具有属性,它是对象的状态的抽象,用数据结构来描述类的属性。

  类具有操作,它是对象的行为的抽象,用操作名和实现该操作的方法来描述。

  (2)类的结构

  在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般--具体结构关系,整体--部分结构关系。

  一般——具体结构称为分类结构,也可以说是关系,或者是“is a”关系。

  整体——部分结构称为组装结构,它们之间的关系是一种关系,或者是“has a”关系。

  (3)对象

  对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

  (4)对象的状态和行为

  对象具有状态,一个对象用数据值来描述它的状态。

  对象还有操作,用于改变对象的状态,对象及其操作就是对象的行为。

  对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中

(5)消息和方法

  对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、方法名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。

类(Class)实际上是对某种类型对象定义变量和方法的原型。它表示对现实生活中一类具有共同特征的事物的抽象,是面向对象编程的基础。

类是对某个对象的定义。它包含有关对象动作方式的信息,包括它的名称、方法、属性和事件。实际上它本身并不是对象,因为它不存在于内存中。当引用类的代码运行时,类的一个新的实例,即对象,就在内存中创建了。虽然只有一个类,但能从这个类在内存中创建多个相同类型的对象。

  可以把类看作理论上的对象,也就是说,它为对象提供蓝图,但在内存中并不存在。从这个蓝图可以创建任何数量的对象。从类创建的所有对象都有相同的成员:属性、方法和事件。但是,每个对象都象一个独立的实体一样动作。例如,一个对象的属性可以设置成与同类型的其他对象不同的值。

对象(object)是一件事、一个实体、一个名词,可以获得的东西,可以想象有自己的标识的任何东西。对象是的实例化。一些对象是活的,一些对象不是。

比如这辆汽车、这个人、这间房子、这张桌子、这株植物、这张支票、这件雨衣。概括来说就是:万物皆对象。

1、类是对象的抽象;对象是类的实例。
2、类不占用内存空间,对象占用存储空间。

对象是一个抽象概念,你可以说类是对象,也可以说实例是对象。类是代码,实例是数据,代码是设计期的,数据是运行期的。而对象则贯穿整个设计阶段和运行阶段以及维护阶段。

我们说面向对象(Object-Oriented),而不是面向类(Class-Oriented),也不是面向实例(Instance-Oriented),那是因为对象作为抽象概念已经包含了类和实例,而且对象不止是类和实例,还包含了他们的现实意义。

任何无视现实意义,随意组装一些类,这样的代码属于面向类(Class-Oriented),但不是面向对象。因此并不是任何用C++Java写出来的代码就是面向对象,但是所有的C程序也不一定都不是面向对象。

struct A
{
};

这是类,也是对象。

A c;
类和对象的区别
1,类是一个抽象的概念,它不存在于现实中的时间/空间里,类只是为所有的对象定义了抽象的属性与行为。就好像“Person(人)这个类,它虽然可以包含很多个体,但它本身不存在于现实世界上。
2,对象是类的一个具体。它是一个实实在在存在的东西。
3,类是一个静态的概念,类本身不携带任何数据。当没有为类创建任何对象时,类本身不存在于内存空间中。
4,对象是一个动态的概念。每一个对象都存在着有别于其它对象的属于自己的独特的属性和行为。对象的属性可以随着它自己的行为而发生改变。

什么是类,什么是对象,类和对象这间的关系
cA的实例,也是对象。

类的概念:类是具有相同属性和服务的一组对象的集合。它为属于该类的所有对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。在面向对象的编程语言中,类是一个独立的程序单位,它应该有一个类名并包括属性说明和服务说明两个主要部分。

对象的概念:对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。从更抽象的角度来说,对象是问题域或实现域中某些事物的一个抽象,它反映该事物在系统中需要保存的信息和发挥的作用;它是一组属性和有权对这些属性进行操作的一组服务的封装体。客观世界是由对象和对象之间的联系组成的。

类与对象的关系就如模具和铸件的关系,类的实例化结果就是对象,而对一类对象的抽象就是类.类描述了一组有相同特性(属性)和相同行为(方法)的对象。