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

标签 java c++ 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;
     }
    }

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

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

最佳答案

How to create a Class that accepts dynamic attributes in Java, C++ or in any OOL?

这实际上取决于您要如何使用它。在许多情况下,您可以修改您的类以包含某种类型的动态增长的集合,例如 std::map在 C++ 或 Map 中(或 Dictionary)在 Java 中。

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

关于java - 当 Java、C++ 或任何面向对象语言中的属性是动态和可变的时,如何创建一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18215033/

相关文章:

java - Intellij插件开发中如何获取java文件的所有方法列表

java - 扩展泛型类

c++ - 在C++更改N个字符的字符串中每N个字符插入一个字符

c# - 挂接到 HttpModule 中的 Application_Start

java - 为什么无法访问 Choreographer 类中的 getFrameTime() ?

java - 通过给定键断言 map 不包含空值

c++ - 为什么 glMapBuffer 返回 NULL?

c++ - std::ofstream 无缘无故地重复和丢失写入的数据

javascript - 在窗口中居中动态生成的表格单元格

mysql - 从代码或存储过程mysql插入