Как сделать метод изменения статуса кошки (жива или мертва)?

Как сделать метод изменения статуса кошки (жива или мертва)?

public class Cat
{
    private double originWeight;
    private double weight;
    private static int catCount = 0;
    private double minWeight;
    private double maxWeight;

    public boolean isAlive()
    {
      if (getWeight() >= minWeight && getWeight() <= maxWeight)
        {
          return true;
        }
      else
          {return false;
          }

    }

    public Cat()
    {
        weight = 1500.0 + 3000.0 * Math.random();
        originWeight = weight;
        minWeight = 1000.0;
        maxWeight = 9000.0;
        catCount = catCount + 1;

    }

    public static int getCatCount()
    {return catCount;}

    public  void changeStatus()
    {

    }

    public void meow()
    {
        if (isAlive())
        {
        weight = weight - 1;

        System.out.println("Meow");

        }



    }

    public void feed(Double amount)
    {
        if (isAlive())
        {
         addWeight(amount);
            System.out.println("dead cat");
        }

    }

    public void drink(Double amount)
    {
        weight = weight + amount;

    }

    public Double getWeight()
    {
        return weight;
    }
    private void setWeight(Double weight)
    {
        if (isAlive())
        {
            this.weight = weight;
        }

             if (!isAlive())
            {
              catCount--;
                System.out.println("dead???");
            }
    }

    private void addWeight(Double weight)
    { setWeight(getWeight() + weight);}


   public String changeStatus()
   {
       0

   }



    public String getStatus()
    {
        if(weight < minWeight) {
            return "Dead";

        }
        else if(weight > maxWeight) {
            return "Exploded";
        }
        else if(weight > originWeight) {
            return "Sleeping";
        }
        else {
            return "Playing";
        }
    }
}

Ответы (1 шт):

Автор решения: Aziz Umarov

Собственно сделать вы сможете, но любая реализация будет неверной. Поскольку статус у вас Вычислимое значение.

Status = F(weight);

обратной функции f к вашей F нет.

weight = f(Status);

так как оно для одного Status предлагается отрезок weight. Что противоречит определению функции в целом.

→ Ссылка