¿Por qué no pueden definirse dos clases públicas en un archivo en java? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Por qué cada clase pública está en un archivo separado? 12 respuestas

¿Por qué la clase B no puede hacerse pública? ¿Cómo puedo usar la clase en otras clases? ¿Es mejor definirlo dentro de Contras?

   //    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();}
    }

Respuestas a la pregunta(3)

Su respuesta a la pregunta