Duvida básica, com objetos.[RESOLVIDO]

5 respostas
evertonsilvagomesjav

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

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

5 Respostas

ViniGodoy

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.

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);  
   }  
}
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(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");
panngo
evertonsilvagomesjava:
Bom galera segue minha duvida, vou colocando a duvida dentro do código como comentário.
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);
		 		   				   
		   }
		   
}

Muda o comando para isso

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

aehueahaeuaehuaehaeuah

evertonsilvagomesjav

vlww ae tbb Lucas

Criado 17 de novembro de 2009
Ultima resposta 17 de nov. de 2009
Respostas 5
Participantes 4