-2

我实际上正在寻找有关该主题的一般答案或信息链接,但我认为这个问题最好通过一个具体示例来说明:

前任。1:

class Car {

}

class Sedan extends Car {

}

// ... etc. where 10+ classes will extend Car

前任。2:

class Car {

    public enum CarId {
    SEDAN,
    COUPE,
    // ...
    }

    public Car(CarId id) {
        //...
    }
}

假设在这种情况下,Sedan、Coupe 等不会提供更多的复杂性(可能是单个字段,可能为空也可能不为空;也就是说,有些人会使用但其他人不会使用的字段)。

它们分别在什么情况下使用?问题的哪些具体特征将决定使用哪个?具体来说,为什么要使用第二个而不是第一个。 我看不出这是多么含糊,以至于需要投反对票。这个问题没有问什么是继承或什么是枚举。提供否决票的理由。

未能展示研究成果:
这是非常具体的,我问的唯一原因是因为我无法在谷歌上搜索该示例。如果是这个原因,至少提供一个信息来源。

Vague:
非常具体。

有用的:
我面临可以同时使用两者的情况。我可以使用一些关于我应该寻找什么来决定的信息。

4

1 回答 1

2

这样想:

汽车是一个物体。在 OOP 中,对象具有状态(也称为属性/属性)、行为。

对象状态使用类字段表示,对象行为使用方法表示。

现在,以您的示例为例:汽车是一个对象,汽车的属性是名称、品牌等。汽车的行为将是 applyBrakse(), accelarate(), ... 等等。

所以我会创建 Car 对象如下:

class Car {

    private String name;
    private String brand;
    private String type;
    // ...... other properties

    // constructor, getter and setter methods

    public void applyBrakes() {
        // code to apply brakes
    }

    public void accelarate() {
        // code to apply brakes
    }

    // ... other behavioral methods

}
于 2012-12-29T05:59:01.477 回答