Teste de certificação

Galera está certo meu entendimento?


public class Bunnies { 
   static int count = 0; //Atributo de classe inicializado em 0.
   Bunnies() {            //Construtor padrão que cria um objeto Bunnies usando o construtor Bunnies(int x) para pré-incrementar o atributo count em 1 até chegar a 10.
     while(count < 10) new Bunnies(++count); 
   } 

   Bunnies(int x) { super(); }  //Outro construtor que recebe um parâmetro inteiro e chama (para confundir) o construtor padrão da classe Object.

   public static void main(String[] args) { 
     new Bunnies();  //Criando um objeto Bunnies que executa a operação de pré-incremento.
     new Bunnies(count); //Não serve pra nada, só pra enganar. Peguinha.
     System.out.println(count++);  //Imprime o calor de count. O pós-incremento é para confundir o valor do resultado, só seria útil se o count fosse mais tarde.
   } 
}

Estou certo?

Nao compiliei, mas acredito que sim, voce esta certo.

Sim vc está correto, seguindo o mesmo raciocínio, vc deve já saber a idade dos
coelhos…

public class Bunnies { 
    
    private int age = 1;    
    
    public static void main(String[] args) {
        System.out.println(new Bunnies().ageBussies());
    }
    
    int ageBussies() {
       age = new Bunnies().incrementAge(age++);
       return incrementAge(new Bunnies().incrementAge(new Bunnies().incrementAge(++age)));        
    }
    
    protected int incrementAge(int age) {
        return age;
    }
}

Essa instrução: age = new Bunnies().incrementAge(age++); no caso do pós-incrementos, Ele só acontece após o processamento do método incrementAge(int age)?

A idade é 2.

public class Bunnies {   
      
    private int age = 1;      
      
    public static void main(String[] args) {  
        System.out.println(new Bunnies().ageBussies());  
    }  
      
    int ageBussies() {  
       age = new Bunnies().incrementAge(age++);  //pós-incremento e nada mais. Ele só acontece após o processamento do método?
       return incrementAge(new Bunnies().incrementAge(new Bunnies().incrementAge(++age)));
       //Como o métido retorna um int é aqui no return que está a chave. :)
    }  
      
    protected int incrementAge(int age) {  //Esse método apenas retorna o parâmetro recebido.
        return age;  
    }  
}