не понимаю, что выводить нужно
package com.javarush.task.task05.task0502;
/*
Реализовать метод fight
*/
public class Cat {
public int age;
public int weight;
public int strength;
public Cat() {
}
public boolean fight(Cat anotherCat) {
int s = 0;
int n = 0;
if (this.age > anotherCat.age)
s++;
else
n++;
if (this.strength > anotherCat.strength)
s++;
else
n++;
if (this.weight > anotherCat.weight)
s++;
else n++;
if (s > n)
return true;
if (n > s)
return true;
else
return false;
}
public static void main(String[] args) {
Cat cat1 = new Cat ();
Cat cat2 = new Cat();
cat1.age = 1;
cat2.age = 3;
cat1.weight = 1;
cat2.weight = 3;
cat1.strength = 1;
cat2.strength = 3;
System.out.println(cat1.fight(cat2));
System.out.println(cat2.fight(cat1));
}
}
мы(this) бой или нет, т.е. возвращать true, если выиграли и false - если нет. Если ничья и никто не выиграл, возвращаем false Тут имеется в виду, выиграл ли тот кот, чей метод мы вызывали. cat1.fight(cat2) тут мы вызвали метод у cat1, а тут: cat2.fight(cat1), у cat 2. Теперь к самому методу fight. Судя из кода можно понять что s - это переменная в которую идут очки за того кота, чей метод был вызван. Т.е. если метод был вызван так: cat1.fight(cat2), то s будет хранить очки за кота cat1, а если cat2.fight(cat1), то s будет хранить очки за кота 2. А теперь вспоминаем что значит "выиграли ли мы" и как это определить. Т.е. переменное s как раз такие хранит "наши" очки, очки этих самых "мы". Теперь осталось прописать в коде условие задачи. Если победили "мы", а мы победили если набрали больше очков чем наш противник (переменная n), то возвращаем true. Если мы проиграли или ничья, то возвращаем false. Т.е. true мы возвращаем только если набрали больше очков чем противник. Получается код: Ну или просто: