Вот такой можно сказать рандомный код прошел валидацию. Но у меня ощущение, что он не работает по назначению, так как System.out.println(cat1.fight(cat2)); выводит true, даже если установить значения age и weight для cat1 на 1. Да и вообще я не понимаю как это дело подтягивается в Cat и another Cat, и что вообще происходит. Разложите пожалуйста по полочкам, кому не лень. P.S. И да, как я понял строка public Cat() {} предназначена для установки значений по умолчанию для новосозданных котов ?
/*
Реализовать метод boolean fight(Cat anotherCat):
реализовать механизм драки котов в зависимости от их веса, возраста и силы.
Зависимость придумать самому.
Метод должен определять, выиграли ли мы (this) бой или нет, т.е. возвращать true,
если выиграли и false - если нет.

Должно выполняться условие:
если cat1.fight(cat2) = true,
то cat2.fight(cat1) = false
*/

public class Cat {
    public String name;
    public int age;
    public int weight;
    public int strength;

    public Cat() {
    }

    public boolean fight(Cat anotherCat) {
        //напишите тут ваш код
        strength = age * weight;

        if (this.strength>anotherCat.strength) {
            return true;}
        else {
        return false;
        }
    }

        public static void main (String[]args){
            Cat cat1 = new Cat();
            cat1.name = "Vaska";
            cat1.age = 6;
            cat1.weight = 4;

            Cat cat2 = new Cat();
            cat2.name = "Ivan";
            cat2.age = 3;
            cat2.weight = 5;

            cat1.fight(cat2);

System.out.println(cat1.fight(cat2));
        }

}