Подскажите, пожалуйста, почему в первой задаче я создал объект внутреннего класса привычным (мне) способом и компилятор не ругался? Или объект не тот создался или я что-то упустил (а может и то и другое).
public class Car {
    public class Engine {
        private boolean isRunning;
        public void start() {
            isRunning=true;
        }
        public void stop() {
            isRunning=false;
        }
    }
    Car.Engine engine = new Car.Engine();
}