Se você tem o to string , qual é a necessidade do getters ?Para mim não precisa

Se você tem o to string , qual é a necessidade do getters ?Para mim não precisa .

O método toString() tem por função representar um objeto por meio de uma String e não retornar um valor de um atributo de um objeto ou o valor de um campo. Nesse último caso, deve-se utilizar um método de recuperação (get). Veja o que informa a documentação do Java:

public String toString() - Retorna uma representação de string do objeto. Em geral, o método toString retorna uma string que “representa textualmente” esse objeto. O resultado deve ser uma representação concisa, mas informativa, que seja fácil para uma pessoa ler. Recomenda-se que todas as subclasses substituam esse método.

1 curtida

Entendi, mas dependendo do exercício ele não vai precisar do getter não é ?

Eu o uso para desempenhar a função para o qual foi escrito: representar textualmente o valor de um objeto.

Ontem na prova , eu deixei de fazer, acho que vou perder pontos por causa disso

Pra métodos mais simples, você não nota a diferença e acha que não precisa. Mas se você for usar um webservice, por exemplo, você vê que é meio que obrigatório.

Mas como no seu caso você disse que é uma prova, isso depende de diversos fatores:

  • O professor pediu?
  • Estava na questão da prova usar Getter e Setter?
  • O professor é flexível à mudanças nos projetos?

Respondendo a sua pergunta:

Se você fizer um

setNome("Nivaldo");,

como você vai recuperar?

Usando

nome.toString()??

2 curtidas

Uma coisa importante a se considerar é a semantica do código.

Independente da simplicidade de suas classes, é esperado por qualquer desenvolvedor Java que o método toString() trará a representação textual do objeto (como o @Jothar_Aleksander já disse) e um getString() traria o valor, possivelmente, setado por um setString().

Então acho bom, por mais que seja repetido, deixar os 2 método (toString e getString) por uma questão de que o significado deles é diferente. E por mais que o retorno de ambos seja igual neste momento, não há garantias de que o software evolua e o toString passe a retornar um valor complementamente diferente do getString.

2 curtidas

Nao sei exatamente o que o professor te pediu, mas na prática se nao for usar toString() entao nao precisa sobrescrever toString().

Então não implementa. :wink:

Parece uma resposta grosseira, mas essa é a realidade.
Se você percebe que suas classes possuem algum código que de fato você não precisa, então pra que implementar?

O toString() é um método “especial” para trazer a representação de um objeto na forma de texto.
A implementação padrão, aquela implementada na classe Object, do toString() retorna um objeto String com o seguinte conteúdo:

<nome-da-classe> + '@' + <hashcode-em-hexadecimal>

Por isso é comum sobrescrever o toString() para trazer uma representação textual mais amigável, principalmente para quem depura código utilizando IDE’s, pois agiliza a inspeção de variáveis.

Vale lembrar que o método toString() é chamado implicitamente quando utilizado em concatenações de String ou quando utilizado em métodos como o print, println ou printf.

2 curtidas