Почему два открытых класса не могут быть определены в одном файле в Java? [Дубликат]

На этот вопрос уже есть ответ здесь:

Почему каждый публичный класс находится в отдельном файле? 12 ответов

Почему класс B не может стать публичным? Как я могу использовать класс в других классах? Это лучше определить внутри минусов?

   //    public class B { why not?

   class B {
        int x;  
        B (int n) {
            x=n;
            System.out.println("constructor 'B (int n)' called!");
        }
    }

    public class Cons { 
        public static void main(String[] args) {B b = new B();}
    }

Ответы на вопрос(3)

Ваш ответ на вопрос