1. Почему в JavaRush до 2 уровня в заданиях почти всегда пишут так (класс внутри другого класса):
public class Solution {
    public static void main(String[] args) {

        Dog Max = new Dog();
        Max.name = "Max";

        Dog Jack = new Dog();
        Jack.name = "Jack";

        System.out.println(Max.name);
        System.out.println(Jack.name);

    }


  public static class Dog {
        public String name;
    }


}
А не так:
public class Solution {
    public static void main(String[] args) {

        Dog Max = new Dog();
        Max.name = "Max";

        Dog Jack = new Dog();
        Jack.name = "Jack";

        System.out.println(Max.name);
        System.out.println(Jack.name);

    }


}


class Dog {
        public String name;
    }
2. Как называется эта явление (класс внутри другого класса), если не подкласс? 3. Не считается ли плохим стилем кода, в Java, оставление пустых сток (как например, 12, 19, 20 в первом коде)?