类和数据类型之间有什么区别?

9
当我阅读 UML 规范时,发现:
 class has a set of attributes/operations
and data type has a set of attributes/operations

1) 关于数据类型的属性/操作,这是什么意思?

因为我不知道这样的数据类型有哪些属性和操作?

2) 类和数据类型之间的主要区别是什么?

2个回答

12
根据UML 2.4.1规范,数据类型是一种特殊的分类器,类似于类。它不同于类在于,数据类型的实例仅通过其值进行标识。所有实例的副本以及该数据类型具有相同值的任何实例均被视为相等的实例。如果数据类型具有属性(即结构化数据类型),则认为具有属性的数据类型的实例在结构相同时且对应属性的值相等时是相等的。如果数据类型具有属性,则该数据类型的实例将包含与属性匹配的属性值。
1)数据类型的属性/操作具有与类的属性/操作相同的含义,即属性表示数据类型的结构,操作表示数据类型上可用的方法。
2)类和数据类型之间的主要区别在于,不可能拥有两个具有相同值的数据类型实例(这些实例将是一个唯一的实例)。
希望能帮到您, RB

0
在面向对象(OO)的方法中,系统(包括软件)由许多对象组成,这些对象通过以数据值和“消息”形式交换信息来协同工作。对象是类的特定实例,就像您的狗(一个对象)是所有狗类的特定实例一样。类定义了对象的属性,对象是可以使用和操作的实际实例。作为定义,类定义了将用于描述基于此类的每个对象的属性。在对象内部,每个属性都将具有对其描述有所贡献的值。相同类别的两个对象将具有相同的属性,但它们至少将具有一个属性,在这两个对象中具有不同的值-如果这两个对象的所有属性具有相同的值,则它们是相同的对象。
数据类型指对象的属性及每个属性的数据类型,例如字符串、布尔、整数等。
操作或方法是对象可以执行的操作,例如对于一只狗:
growl();
bark();
fetch();

等等,看看这个类图的解释,会更有意思。


3
如果两个对象的所有属性值都相同,那么它们就是同一个对象——这个说法其实是不正确的。以您提供的简单Dog类为例,比如有两个属性name和age,拥有两个名字都是Fido,年龄都是6岁的独立的Dog实例是完全可以的。 - Carsten

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接