Get e Set retornando Null [Resolvido]

6 respostas
Mstanguine

Bom dia a Todos!

Preciso de uma ajuda referente ao uso de Getter's e Setter's. No caso criei as seguintes classes:

package teste;

public class Pessoa {
	private String nome;
	private int idade;
	
	public void setNome(String n){
		n = nome;
	}
	public String getNome(){
		return nome;
	}
	public void setIdade(int i){
		i = idade;
	}
	public int getIdade(){
		return idade;
	}
}

Depois a outra:

package teste;
import javax.swing.JOptionPane;

public class Aluno {
	public static void main (String[] args){	
		
		Pessoa p = new Pessoa();
		
		String no = JOptionPane.showInputDialog("Digite o nome: ");
		int id = Integer.parseInt(JOptionPane.showInputDialog("Digite a idade: "));
		
		p.setIdade(id);
		p.setNome(no);
		
		System.out.println("Idade: " + p.getIdade());
		System.out.println("Nome: " + p.getNome());
	}

}

Mas quando insiro os valores, retorna 0 para [color=red]int[/color] e null para a [color=red]String[/color].
No caso o que poderia ser?
Ja usei toString, e afins, mas nada.

O estranho que fiz essa mesma classe em outra máquina, e rodou normalmente.

Quem puder ajudar, agradeço =D

Abraços!

6 Respostas

Balena

Realmente muito estranho, mesmo tipo de projeto?

Na teoria deveria funcionar.

adriano_si

Com certeza não foi a mesma classe…
Isso

public void setNome(String n){ nome = n; }

É diferente disso

public void setNome(String n){  
     n = nome;  
}

No de cima você está setando seus atributos com o que manda por parâmetro… no debaixo você está setando os Parâmetros com o que estão em seus atributos, ou seja 0 para inteiro e null para Objetos…

Mais atenção da próxima vez…

Abs [] e bons estudos…

Balena

Tenta não passar as variáveis nos seter’s tenta passar o valor direto pra ver se vai.

Balena

adriano_si:
Com certeza não foi a mesma classe…
Isso

public void setNome(String n){ nome = n; }

É diferente disso

public void setNome(String n){  
     n = nome;  
}

No de cima você está setando seus atributos com o que manda por parâmetro… no debaixo você está setando os Parâmetros com o que estão em seus atributos, ou seja 0 para inteiro e null para Objetos…

Mais atenção da próxima vez…

Abs [] e bons estudos…

verdade eu não havia percebido.

E

Dica: uma forma de você evitar isso é fazer com que a IDE (como o Eclipse ou o NetBeans) faça o serviço sujo para você. Normalmente o Eclipse ou o NetBeans geram código semelhante a este:

public void setIdade(int idade){  
         this.idade = idade;
     }
Mstanguine

Obrigado a todos pelas respostas!

Realmente a diferença estava em:

public void setNome(String n){ nome = n; }

Na qual eu estava fazendo ao contrario.

Mais um vez obrigado a todos, e ficarei mais atento! =)

Abraços pessoal!

Criado 14 de dezembro de 2010
Ultima resposta 14 de dez. de 2010
Respostas 6
Participantes 4