Как сделать метод изменения статуса кошки (жива или мертва)?
Как сделать метод изменения статуса кошки (жива или мертва)?
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. Что противоречит определению функции в целом.