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.
}
}
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;
}
}