Bom dia,
Eu não entendi essa questão! Quando eu faço new + construtor() estou criando um novo objeto, no exemplo eu tenho 3 instruções como essa dentro do escopo do for, ele criou novos objetos ou está acessando o mesmo? Eu não entendi.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Bom dia,
Eu não entendi essa questão! Quando eu faço new + construtor() estou criando um novo objeto, no exemplo eu tenho 3 instruções como essa dentro do escopo do for, ele criou novos objetos ou está acessando o mesmo? Eu não entendi.
Ola, Diego santana fernandes !
Sim você esta correto, cada vez que executar o new, você estará criando um nova instancia.
Se passar em um for, e dentro dele executar um new a cada iteração, irá criar novas instancias.
Abraço!
Boa tarde Cristiano!
Então esse loop é infinito?
Diegão !
Da uma olhada nesse trecho do for new Teste().i < 100
Ele vai executar o for enquanto Teste().i for menor do que 100.
for (new Teste().i = 10; new Teste().i < 100;
new Teste().i++) {
System.out.println(i);
}
Endenteu agora ?
Abraço!
Exato!
Eu queria saber se eu criei 3 instâncias de objeto?
for ( new Teste(){1º objeto}.i = 10; new Teste()[2º objeto}.i < 100; new Teste(){3º objeto}.i++)
eu entendi que .i é um acesso ao membro, o problema é saber se eu estou instanciando um novo objeto em cada parâmetro do for, ou o compilador entende que é o mesmo objeto? como fazemos com uma variável int, sabemos que ele está referenciando a mesma variável, isso ocorre também com o objeto? Toda vez que dou new Teste().i estou simplesmente referenciado o membro do objeto que foi criado na atribuição do valor 10 ao membro?
Então dentro da declaração do for eu estou criando uma única instância e fazendo referência sequentemente? E dentro do escopo do for quando instancio um objeto estou criando um novo, é isso?
Diego.
Cada vez que ele passar pelo for ele vai instanciar 3 vezes o new Teste().
Um teste que vc pode fazer é criar um construtor vazio na classe teste e colocar um System.out.println("Passei pelo construtor").
Assim você pode acompanhar cada vez que ele passa pelo construtor.
Blz ?
Abraço!