Bom galera segue minha duvida, vou colocando a duvida dentro do código como comentário.
classFlibitz{Stringnome;Flibitz(){// Construtor sem argumentos}Flibitz(Stringnome){// Construtor com um parametro Stringthis.nome=nome;}publicstaticvoidmain(String[]args){Flibitzteste=newFlibitz();newFlibitz().testeFlibitz("Joao");System.out.println(teste.nome);// pq minha saida de nome aqui e null, sendo que teste foi referencia antes do construtor com parâmetro ser inicializado? Não deveria ser João?}publicFlibitztesteFlibitz(Stringnome){returnnewFlibitz(nome);}}
Cada "new" que você dá, vc cria um objeto diferente, com uma variável nome diferente.
Você atribuiu a referência "teste" um objeto criado com o construtor vazio. E nesse objeto, a variável nome vale null.
Criei abaixo uma variável para cada objeto instanciado. Veja como existe alguém com nome joão.
classFlibitz{Stringnome;Flibitz(){// Construtor sem argumentos }Flibitz(Stringnome){// Construtor com um parametro String this.nome=nome;}publicstaticvoidmain(String[]args){Flibitzteste=newFlibitz();Flibitzteste2=newFlibitz();Flibitzteste3=teste2.testeFlibitz("Joao");System.out.println(teste.nome);System.out.println(teste2.nome);System.out.println(teste3.nome);//Olha ele aqui.}publicFlibitztesteFlibitz(Stringnome){returnnewFlibitz(nome);}}
Lucas_Bellin
pq voce está criando dois objetos.
1 - Flibitz teste = new Flibitz();
2 - new Flibitz().testeFlibitz(“Joao”);
O nome João você está definindo no segundo, e está imprimindo a variável do primeiro.
e no método testeFlibitz você cria um 3 objeto, com o return new Flibitz(nome);
valeu!
evertonsilvagomesjav
O Vinii brigadao cara, deixa eu aproveitar e fazer so mais uma pergunta.
Entao dessa maneira nao teria como eu usar um objeto sem uma variavel de refencia nao, né? Por exemplo:
System.out.println(newFlibitz().nome);// isso aqui daria na mesma me retornando null né?
Eu teria que criar uma variavel de referencia para o objeto com o construtor com parametros para da certo, ne? Somente assim funcionaria retornando Joao?
Flibitzteste=newFlibitz().testeFlibitz("Joao");
panngo
evertonsilvagomesjava:
Bom galera segue minha duvida, vou colocando a duvida dentro do código como comentário.
classFlibitz{Stringnome;Flibitz(){// Construtor sem argumentos}Flibitz(Stringnome){// Construtor com um parametro Stringthis.nome=nome;}publicstaticvoidmain(String[]args){Flibitzteste=newFlibitz();newFlibitz().testeFlibitz("Joao");System.out.println(teste.nome);// pq minha saida de nome aqui e null, sendo que teste foi referencia antes do construtor com parâmetro ser inicializado? Não deveria ser João?}publicFlibitztesteFlibitz(Stringnome){returnnewFlibitz(nome);}}