1
resposta

Duvida com o THIS no getter e setter

Eu ainda não entendi direito o THIS.

Vamos lá, entendi que o getter e o setter servem para executar alguma ação com meus atributos, correto? Como se fossem uma função, ou melhor um método. Isso procede?

Eu declaro uma classe, que contem meus atribuídos e dentro dela construo meus getters e setter da seguinte forma:

public void setTitular(String titular){ this.titular = titular; }

public String getTitular(){
    return titular;
}

Questiono, sempre irá seguir este padrão?

outra duvida é em relação a expressão: this.titular = titular O this.titular refere-se ao getTitular? E o titular que tem depois do sinal de = refere-se ao atributo?

Isso está muito confuso para mim.

Se alguém puder ajudar eu agradeço.

1 resposta

Olá Bruna, tudo bem? Espero que sim!!

Vamos lá, respondendo uma pergunta de cada vez...

Sim, procede o seu raciocínio. Os métodos de getter e setter são para "manipulação" dos atributos da sua classe.

Em relação a se irá sempre seguir o padrão do getter e o setter. Sim, o método "setTitular" não irá retornar nada, por isso não há "tipagem" na sua declaração. (ou como seu exemplo a "tipagem" é void pois retorna vazio ou nada) Traduzindo "void", seria como vazio, oco, desocupado".

O método "getTitular" (seu atributo "titular" provavelmente está declarado como String) irá retornar uma string que está no atributo "titular", por isso existe a tipagem "String".

Se você estivesse fazendo um método, por exemplo, "getSaldo" (levando em conta que o atributo "saldo" da sua classe é declarado como "INT"), provavelmente a declaração desse método seria algo mais ou menos:

public int getSaldo() { return saldo; }

A dúvida sobre a expressão " this.titular = titular". Ao chamar um método da classe, por exemplo contaDaMarcela.setTitular("Marcela"); o que está acontecendo é o seguinte:

o "this.titular" é equivalente ao o atributo "titular" que está naquela instância da classe, no caso é contaDaMarcela. depois que o método é executado, você pode ver o valor desse atributo usando "System.out.println(contaDaMarcela.titular)". o "titular" (que vem depois do "=") é o valor que está sendo passado como referência para o método. contaDaMarcela.setTitular("Marcela");

Espero que tenha ficado claro para você, qualquer dúvida pergunte novamente e tentarei explicar de outra maneira!! Se ficou claro, por favor, selecione como "resolvido"!!

Um grande abraço!!