java - 在 Java 中实现与 C++ 中的析构函数相同的结果

标签 java c++ oop encoding static

如果我有这个类(C++):

class Ship {
public:
    Ship() {
        std::cout << "New ship created\n";
        ++shipCount;
    }
    ~Ship() {
        std::cout << "Ship destroyed!\n";
        --shipCount;
    }

private:
    static unsigned int shipCount = 0;
}

如何在 Java 中达到相同的结果? 另外,我被告知不应重写 java 中的 finalize() 方法。

最佳答案

我会在包含船舶列表的 ShipFleet 类上对其进行建模。然后是包含船舶详细信息的船舶类别。在 Fleet 类中,我将拥有方法 join()leave()。或者,您还可以在船舶类别中拥有该船舶所属的船队的属性,当船舶被“摧毁”时,您可以要求其所属的船队将其移除。

关于java - 在 Java 中实现与 C++ 中的析构函数相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59638507/

相关文章:

Java - SWT - 单击提交按钮后可运行新的

c++ - 如何旋转 ATL::CImage 对象

c++ - C内存管理

oop - Racket 子类中绑定(bind)的自动继承

php - Laravel 中的 Controller 构造函数

java - Spring JPA 存储库不返回实体列表

Java Swing 编辑用户弹出窗口

java - sstableloader的错误

C++简单程序错误

javascript - 类枚举 setter ,约定 javascript