Estou com uma dúvida, tenho uma classe com os atributos nome e idade. Nesta mesma classe possuo o método verAnoNascimento() que utiliza o atributo idade para saber o ano em que a pessoa nasceu.
No método verAnoNascimento eu devo acessar meus atributos pelo this OU pelo sets/gets???
Há alguma diferente entre:
[code]public Integer verAnoNascimento(){
this.idade
//ou
getIdade()
}[/code]
Qual a diferença na prática entre this.idade e getIdade() ?
:roll: :roll: :roll: :roll:
Quando você utiliza um método getIdade você está encapsulando o atributo idade. Dentro do método getIdade você pode ter mais código além de return this.idade. Se você está dentro da classe e não tem a necessidade de fazer algo mais, você pode acessar diretamente o atributo com this.idade.
[quote=java]Boa tarde amigos!
Estou com uma dúvida, tenho uma classe com os atributos nome e idade. Nesta mesma classe possuo o método verAnoNascimento() que utiliza o atributo idade para saber o ano em que a pessoa nasceu.
No método verAnoNascimento eu devo acessar meus atributos pelo this OU pelo sets/gets???
Há alguma diferente entre:
[code]public Integer verAnoNascimento(){
this.idade
//ou
getIdade()
}[/code]
Qual a diferença na prática entre this.idade e getIdade() ?
:roll: :roll: :roll: :roll:
getIdade voce usaria mais na chamado do Método do Objeto dessa Classe, já que os atributos, em geral, são encapsulados, e nao podem ser acesado ou retornado diretamente.
Nesse caso, voce está manipulando um atributo dentro da própria classe, o que pode ser acessado por this.
Não vejo o porque, nesse caso, de usar o método get.
cara utilize o “this”
geralmente no método get você joga e retorna o valor passado como parâmetro
para o atributo do objeto instanciado ao menos que seu método seja assim…
public String getNome() {
return this.nome;
}
// ou ainda
public String getNome() {
return nome;
}
//pois não tem nenhum parâmetro "nome" nesse método
O compilador pode otimizar o código e colocar esses métodos inline (substituir a chamada pelo corpo da função chamada), o que elimina o overhead.[/quote]
No caso de métodos que só retornam o atributo, o compilador vai certamente fazer isso. A menos que esse método tenha sofrido sobrecarga.