Привет! Условие: есть главный класс и дополнительный класс к этому классу. В главном классе есть кот, которого можно кормить, поить и просить мяукать. При каждом «мяу» вес кота уменьшается на 1 грамм. В дополнительном классе прописаны «кошачьи» методы, которые используются в главном классе. Ну и у меня задание «замяукать» кота до смерти, то есть чтобы кот мяукнул столько, чтобы его вес стал меньше килограмма. Ну я его сделал, а дальше нужно сделать другие задания и все поместить в один проект Cat. Ну и я закомментировал этот код с первого задания (то есть код, где цикл while). А теперь вопрос: как раскомментировать код так, чтобы он работал вместе с остальным кодом? Попробовал вот так и не вышло. Если для этого нужно создать двух котов (один для цикла while, другой для остального кода), то как это сделать?
Главный класс Loader:
public class Loader { public static void main(String[] args) { System.out.println("catCount = " + Cat.getCount()); Cat cat = new Cat(); System.out.println(cat.getWeight()); while(1000 <= cat.getWeight()) { cat.meow(); } System.out.println(cat.getStatus()); Cat cat = getKitten(); // здесь intellij idea подчеркивает cat и пишет "variable 'cat' is already defined in the scope". Что это значит? System.out.println("catCount = " + Cat.getCount()); cat.feed(999.9); System.out.println("catCount = " + Cat.getCount()); cat.meow(); System.out.println("catCount = " + Cat.getCount()); cat.restroom(); System.out.println("catCount = " + Cat.getCount()); cat.feed(9999999.9); System.out.println("catCount = " + Cat.getCount()); cat.meow(); System.out.println("catCount = " + Cat.getCount()); System.out.println("eatenFood = " + cat.getEatenFood()); } public static Cat getKitten() { double weight = 100 + 100 * Math.random(); return new Cat(); } } Дополнительный класс Cat: public class Cat { private Double originWeight; private Double weight; private Double minWeight; private Double maxWeight; private double eatenFood; private static int count; public Cat() { this(1500.0 + 3000.0 * Math.random()); } public Cat(double weight) { this(weight, weight, 1000.0, 9000.0, 0.0); } private Cat(double weight, double minWeight, double originWeight, double maxWeight, double eatenFood) { this.weight = weight; this.originWeight = originWeight; this.minWeight = minWeight; this.maxWeight = maxWeight; this.eatenFood = eatenFood; if(isAlive()) count++; } Cat(double weight, double minWeight, double originWeight, double maxWeight) { this(weight, weight, minWeight, maxWeight, 0.0); } public Cat(Cat other) { this(other.weight, other.originWeight, other.minWeight, other.maxWeight, other.eatenFood); } private void setEatenFood(double eatenFood) { this.eatenFood = eatenFood; } private void addEatenFood(double eatenFood) { setEatenFood(getEatenFood() + eatenFood); } public double getEatenFood() { return eatenFood; } public static int getCount() { return count; } public void meow() { if (isAlive()) { addWeight(-1.0); System.out.println("Meow"); } } public void feed(Double amount) { if (isAlive()) { addWeight(amount); addEatenFood(amount); } } public void drink(Double amount) { addWeight(amount); } private void setWeight(Double weight) { if (isAlive()) { this.weight = weight; if (isAlive()) { count--; } } } private void addWeight(Double weight) { setWeight(getWeight() + weight); } public Double getWeight() { return weight; } public Double getOriginWeight() { return originWeight; } public void restroom() { if (isAlive()) { double shrinkage = Math.random() * 20.0; addWeight(-shrinkage); System.out.println("Weight shrinkage = " + shrinkage); } } public String getStatus() { if(weight < minWeight) { return "Dead"; } else if(weight > maxWeight) { return "Exploded"; } else if(weight > originWeight) { return "Sleeping"; } else { return "Playing"; } } public boolean isAlive () { return getWeight() >= minWeight && getWeight() <= maxWeight; } public Cat copy() { return new Cat(this); } public static Cat copy(Cat other) { return new Cat (other); } }