TipoRetorno nomeFuncao() {
}
Obtendo valores de atributos
O BlueJ permite visualizar todos os valores dos atributos de um objeto, no entanto, isto é um recurso que a ferramenta disponibiliza apenas para facilitar o entendimento do conceitos de classes e objetos. Na prática, quando precisarmos obter o valor de um atributo de um objeto, precisaremos adicionar uma função para tal finalidade.
Assim como fizemos com os setters, preciremos de uma função com uma estrutura definida, como abaixo:
Tais funções apenas obtêm o valor de um determinado atributo, assim, não precisamos passar nenhuma informação para a função (nenhum parâmetro) para que ela execute sua tarefa. Desta forma, os parênteses da função ficam vazios. O tipo de retorno normalmente é o mesmo definido pelo atributo que deseja-se obter o valor. Assim, uma função para obter o valor do atributo endereco
poderia ser como mostrado abaixo:
String getEndereco() {
return endereco;
}
|
O padrão para o nome de tais funções é getNomeDoAtributo. Estas funções são chamadas de getters (get significa obter). Assim como os setters, elas devem ter um nome específico pois possuem uma finalidade bem definida: obter o valor de um atributo. |
A linha return endereco;
é bem mais simples do que utilizamos para o setter. Aqui não precisamos usar a palavra this
para nos referirmos ao atributo, pois a função getEndereco
não possui um parâmetro com o mesmo nome do atributo que estamos utilizando. De fato, ela não possui parâmetro algum.
Como um getter obtém o valor de um atributo, o tipo de retorno precisa ser diferente de void
(como foi o caso para os setters). Fazendo isso, estamos indicando que nossa função de fato nos dá uma resposta quando ela terminar de executar sua tarefa.
Para as funções que dão alguma resposta após terminarem de executar, nós dizemos que elas retornam um valor, de acordo com o tipo de retorno. Para fazer uma função retornar um valor, precisamos incluir a palavra return
seguida do valor a ser retornado. No caso do getter, na maioria dos casos esta é a única linha da função.
Um getter não possui parâmetros pois ele tem a função de apenas informar algo. Voltando no exemplo da secretária, o chefe poderia pedir a ela para localizar a agenda dele. Neste caso o chefe não precisa passar nenhuma informação à secretária. Ela vai apenas procurar a agenda no escritório e entregar ao chefe. Então a função da secretária de pegar a agenda e entregar ao chefe é um getter.
Porque utilizar padrões de nomes para getter’s e setter’s
Depois de criar algumas classes, você verá que criar getter’s e setter’s é uma tarefa repetitiva e entendiante. Vimos no capítulo 4 que o princípio DRY prega que devemos evitar retrabalho e esta criação destes métodos vai exatamente contra isso. Porém, veremos que em ferramentas profissionais como o NetBeans permitem gerar o código necessário para tais métodos, como pode ser visto no vídeo de demonstração abaixo.
Assim, não temos que manualmente criar tais métodos. Mas como podem ver no vídeo, estas ferramentas também seguem o padrão de nomes para getter’s e setter’s. Isto permite, por exemplo, a ferramenta identificar se já existe um desses métodos para um determinado atributo e não criar um novo método para ele.
Além disso, apenas verificando o nome de um método destes, podemos imediatamente saber qual a finalidade dele, sem precisar ler o código.
|
Getters e Setters
Você verá que criar getters e setters é algo repetitivo e entediante. Por esse motivo, ferramentas de desenvolvimento profissionais (como NetBeans) nos dispensam deste trabalho e permitem gerar tais métodos para os atributos que desejarmos. Este é um dos motivos destes métodos terem um padrão quanto ao nome. |