Classe interna de metodo

Galera pq a saida é só 20?Eu achavo que a instancia ia imprimir novamente a soma!! :frowning:

  public class ConjuntosAvisos{
  static int y=8;

    public static void main(String[] args){
      ConjuntosAvisos A=new ConjuntosAvisos();
      A.faca();
    }
    void faca(){
        final int k=12;  
        class Interna{
             Interna(){
             int cont= y + k;    
             System.out.println(cont);
             }
        }
       new Interna(); //nao deveria chamar novamente?
        
    }

 
  
  }
  public class ConjuntosAvisos{
  static int y=8;

    public static void main(String[] args){
      ConjuntosAvisos A=new ConjuntosAvisos();
      A.faca();
    }
    void faca(){
        final int k=12;  
        class Interna{ // --> isto só declara a classe; não cria instância nenhuma por enquanto
             Interna(){
             int cont= y + k;    
             System.out.println(cont);
             }
        }
       new Interna(); // --> isto cria a primeira instância, e é por isso que você só vê o "20" impresso uma única vez
        
    }

 
  
  }

cara… quando é feito A.faca, não entra na classe interna… somente quando ocorre o new Interna();

[quote=thingol][code]
public class ConjuntosAvisos{
static int y=8;

public static void main(String[] args){
  ConjuntosAvisos A=new ConjuntosAvisos();
  A.faca();
}
void faca(){
    final int k=12;  
    class Interna{ // --> isto só declara a classe; não cria instância nenhuma por enquanto
         Interna(){
         int cont= y + k;    
         System.out.println(cont);
         }
    }
   new Interna(); // --> isto cria a primeira instância, e é por isso que você só vê o "20" impresso uma única vez
    
}

}
[/code][/quote]
Nossa cara é que mesmo distracao!!!valeu!!!

é realmente cara sem comentarios!!valeu!!falta de atencao é f… :x