Como acessar variáveis dentro da prórpria classe?

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:

Nesse caso não há diferença, faça com this.idade para evitar o overhead de chamadas de métodos!

tanto faz, desde que o método getIdade() não tenha lógica que altere o seu valor.

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:

[/quote]

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.

Como seria essa overhead de chamadas? Seria tipo uma sobrecarga de métodos?

E neste caso a aplicação ficaria mais lenta ou seria gerado uma exception??

Gostaria de mais informações se possível…

Desde já agradeço!

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

Você vai ter o mesmo resultado, então por que fazer a chamada via método?! É assim que eu penso!

Gerar exceção não gera e a aplicação não fica mais lenta.

Como seria essa overhead de chamadas? Seria tipo uma sobrecarga de métodos?

E neste caso a aplicação ficaria mais lenta ou seria gerado uma exception??

Gostaria de mais informações se possível…

Desde já agradeço![/quote]

Acho que ele quis diser do encadeamento do método na pilha , e nao sobrecarga de método.

Nesse caso nao lançaria exception, nem deixaria lento (pelo menos no nível perceptível).

Att.

Obrigado a todos pelas explicações!!
Valeu!

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.

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.