Объясните, пожалуйста, почему мы сначала создаем объекты, а потом уже описываем класс или метод? Разве не было бы логичней сделать наоборот? Чтобы соблюдалась причинно-следственная связь
public class Solution {
    public static void main(String[] args) {

        Cat cat = new Cat();
    }

    public static class Cat {
        public Woman owner;
    }
Например вот здесь.