Выполнение в Java того же результата с деструкторами в C ++ - PullRequest
0 голосов
/ 08 января 2020

Если у меня есть этот класс (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? Кроме того, мне сказали, что я не должен переопределять метод finalize() в java.

Ответы [ 2 ]

1 голос
/ 08 января 2020

Я бы смоделировал это на классе ShipFleet, у которого есть список кораблей. Затем класс корабля с подробной информацией о корабле. В классе Fleet у меня были бы методы join() и leave(). Или вы также можете иметь в классе корабля атрибут ShipFleet, к которому принадлежит корабль, и когда корабль «уничтожен», вы просите флот корабля, которому он принадлежал, удалить его.

0 голосов
/ 08 января 2020
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;
    }
}

Вот пример, который я сделал, используя палочки

...