在 Java、C++ 或任何面向对象语言中,当类的属性是动态的和可变的时,如何创建类?

Tum*_*Tum 5 c++ java vb.net oop

好的,在面向对象语言(OOL)中,在创建类时,我们通常会预先知道它的所有属性。例如,Item 类应该有一个固定的属性(颜色、型号、品牌、价格)。所以我们只是:

   public Class Item{
     private String color;
     private String model;
     //etc more attribute here

     //& set & get method for all attributes
     public String getColor() {
         return color;
     }

     public void setColor(String color) {
        this.color = color;
     }

     public String getModel() {
         return model;
     }

     public void setModel(String model) {
         this.model = model;
     }
    }
Run Code Online (Sandbox Code Playgroud)

但是如果所有属性都是动态的呢?例如,在 1 家公司中,他们的项目属性可以是颜色、品牌,但在其他公司中,他们没有颜色和品牌属性,但有宽度、高度、大小......

如何在 Java、C++ 或任何 OOL 中创建一个接受动态属性的类?

Ree*_*sey 4

如何在 Java、C++ 或任何 OOL 中创建接受动态属性的类?

这实际上取决于您想如何使用它。在许多情况下,您可以重新设计您的类以包含某种类型的动态增长的集合,例如std::mapC++ 中的 a 或 Java 中的 a Map(或Dictionary)。

这允许您使用运行时选择的键为每个实例创建和添加任意数据。