// Nota: en este ejemplo estamos usando la versión **corta** de main 
int a = 1;

class Anidada {  
   private int b = 2; 
   void incrementa_externa( ) {
      a += 1;
   }
}

void main( ) { 
   var v = new Anidada( );

   System.out.println(this.a);      // enfatizando: imprimimos *nuestra* a (¿quién es this? ver abajo)
   v.incrementa_externa( );
   System.out.println(this.a);
   v.b = 123;                       // podemos ver lo privado
} 

/*
   Cuando usan la forma corta de main, el código se reescribe internamente de manera similar a:
   
   class Main {                           // todo dentro de una clase
      int a = 1;

      class Anidada {  
         private int b = 2; 
         void incrementa_externa( ) {
            a += 1;
         }
      }

      void main( ) { 
         var v = new Anidada( );

         System.out.println(this.a);
         v.incrementa_externa( );
         System.out.println(this.a);
         v.b = 123;
      } 
   }
   
   por lo que pasa lo mismo que en el ejemplo anterior. La ejecución del programa inicia como si se invocara 
      var m = new Main( );
      m.main( );     // m es this
*/

