在Java中用C ++中的析构函数完成相同的结果

问题描述 投票:0回答:2

如果我有此类(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()方法。

java c++ oop encoding static
2个回答
1
投票

我将在具有船只列表的ShipFleet类上对其进行建模。然后是一个船类,其中包含有关该船的详细信息。在Fleet类中,我将有方法join()leave()。或者,您也可以在船级中对船所属的ShipFleet拥有所有权,当“摧毁”该船时,您要求其所属的舰队将其删除。


0
投票
class Sticks{
private static int no=5;
public void getSticks(){
    no=no-2;
}
synchronized public void returnSticks(){
    no=no+2;
}
public int getCount(){
    return no;
}

}

//这是我用木棍做过的一个样品

© www.soinside.com 2019 - 2024. All rights reserved.