Java/JavaFX 类由另一个类的实例组成

标签 java javafx javafx-2 javafx-8

我确信这个问题已经有了答案,我只是不知道如何用良好的搜索术语来描述我需要做什么。

假设我正在尝试制作一个程序来处理独特的木材(每个木材都有一个 ID)以及由这些独特的木材制成的 table 的销售。我有两个类:WoodPiece 和 Table。

我应该如何创建 Table 类,以便它可以拥有列出了独特木件的 Table 实例,以便您可以添加和删除这些木件,直到 table 实际制造和销售为止?现在我想将 Table 设为 WoodPiece 的子类,它只有一个 woodPieces 的 ArrayList。

我不太擅长 Java,所以我想在浪费大量时间回溯之前确保我有正确的想法。您知道的任何关于这方面的教程都会很棒。我的程序使用 JavaFx。

最佳答案

我将使用组合来构造 Table 类。 table 不是木片,而是它包含木片。 future ,一张 table 可能有 table 布,也可能有人等。

class Table
{
    private Map<String, WoodPiece> woodPieces = new HashMap<>();

    public Table ()
    {
         // constructor
    }

    public void addWoodPiece (WoodPiece wp)
    {
         woodPieces.put(wp.getID(), wp); 
    }

    public WoodPiece removeWoodPiece (String id)
    {
         return woodPieces.remove(id);
    }
}

注意:我使用了 map 而不是列表,因为您的 WoodPiece 对象具有与其关联的唯一 ID。此外,我假设您不关心木 block 的顺序,因为 table 实际上没有组成它的木材的自然顺序。

进一步阅读:https://en.wikipedia.org/wiki/Composition_over_inheritance

关于Java/JavaFX 类由另一个类的实例组成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42611441/

相关文章:

java - 将 SQL 查询结果导出到 csv 或 Excel

java - 一行 TableView 上的上下文菜单?

javafx:如何使用按钮操作事件调用同一类中的方法?我有多个错误和部分代码无法运行

SVGPath LinkedList 上的 java.lang.NullPointerException

java - SSL 握手异常

java - 在用户完成对 SearchView 的查询后隐藏键盘

java - AuthzForce XACML 响应不确定

JavaFX - 无法从 FXML 文件加载节点

当我将 log4j 附加到文本区域时,JavaFX 应用程序卡住

javafx - javafx 2.1 中 FX.defer() 方法的等价物是什么