Duvida básica, com objetos.[RESOLVIDO]

Bom galera segue minha duvida, vou colocando a duvida dentro do código como comentário.

[code]class Flibitz {

	String nome;
	
	Flibitz(){ // Construtor sem argumentos
	
	}
	
	Flibitz(String nome){ // Construtor com um parametro String
		
		this.nome = nome;
				
	}

	   public static void main(String [] args) {
	  								 
	     Flibitz teste = new Flibitz();
	     new Flibitz().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?
	   	     
	   }
	 
			   
	   public Flibitz testeFlibitz (String nome){
		 
	       return new Flibitz(nome);
	 		   				   
	   }

}[/code]

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.

[code]class Flibitz {
String nome;

Flibitz(){ // Construtor sem argumentos
}

Flibitz(String nome){ // Construtor com um parametro String
this.nome = nome;
}
public static void main(String [] args) {
Flibitz teste = new Flibitz();
Flibitz teste2 = new Flibitz();
Flibitz teste3 = teste2.testeFlibitz(“Joao”);
System.out.println(teste.nome);
System.out.println(teste2.nome);
System.out.println(teste3.nome); //Olha ele aqui.
}

public Flibitz testeFlibitz (String nome){
return new Flibitz(nome);
}
} [/code]

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!

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(new Flibitz().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?

 Flibitz teste =  new Flibitz().testeFlibitz("Joao");

[quote=evertonsilvagomesjava]Bom galera segue minha duvida, vou colocando a duvida dentro do código como comentário.

[code]class Flibitz {

	String nome;
	
	Flibitz(){ // Construtor sem argumentos
	
	}
	
	Flibitz(String nome){ // Construtor com um parametro String
		
		this.nome = nome;
				
	}

	   public static void main(String [] args) {
	  								 
	     Flibitz teste = new Flibitz();
	     new Flibitz().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?
	   	     
	   }
	 
			   
	   public Flibitz testeFlibitz (String nome){
		 
	       return new Flibitz(nome);
	 		   				   
	   }

}[/code][/quote]

Muda o comando para isso

teste = new Flibitz().testeFlibitz("Joao");

aehueahaeuaehuaehaeuah

vlww ae tbb Lucas