例如,假设您正在设计一个名为Car
的对象类,该对象支持以符号+
表示的二进制操作,即您可以执行car1 + car2
,其中car1
和car2
是Car
的实例
当您刚完成抽象的代数 class 时,您尝试设计类Car
以使其根据数学分组理论成为一个“组”,因此Car
类具有以下属性:
car1 + car2
返回Car
的另一个实例(car1 + car2) + car3 == car1 + (car2 + car3)
carx
,都有一个实例car0
,这样carx + car0 == car0 + carx == carx
carx
都有其反向carx_inv
,这样carx + carx_inv == carx_inv + carx == car0
您能否举个例子说明这种实现是必要的还是至少是有益的。
最佳答案
OOP概念是以设计类的形式表示现实世界的概念。因此,如果您想在OOP概念中找到组理论的应用,请在现实生活中寻找组理论的应用。
从理论上讲,我们可以将此概念应用于OOP世界中创建的所有内容。
该对象只是存储一些值的属性包的快捷方式。创建对象时,我们将收集这些属性,并用名称将其括起来以简化通信。
由于对象由具有价值的属性组成。我们可以使用代数来处理它们。作为概念的对象保持不变,只有属性的值改变。属性的值是对象的真实表示。
唯恐随车而去,这就是结构
Car {
numberOfSeats
}
我们具有称为
Car
的结构,具有单个属性numberOfSeats
。我们的工作数据将是2座汽车和4座汽车,分别称为car2和car4。
Object car2 = Create Car with 2 seats.
Object car4 = Create Car with 4 seats.
因此,我们有两个对象。现在,唯恐数学。
Object car6 = car2 + car4.
在幕后,我们创建了一个新的Car对象,并添加了
numberOfSeats
的值。该产品是具有六个座位的新车。这就是概念的工作原理。因此,根据这一理论,我们可以对任何事物进行操作。由于汽车不是最好的例子,因此在现实生活中很难做到。
事实是,这种行为取决于开发人员的负责人。当我们从一个正方形物体开始,并且与另一个正方形碰撞时,我们可以设计一个游戏。我们的起始方块随着碰撞方块的大小而增加。另一个很好的例子是
Money
类型,除了它的值外,我们总是货币。因此,对数字进行比较复杂,但是我们可以对数字执行所有的操作。