Boa tarde, estava fazendo uns exercícios de java, quando me surgiu uma duvida ao seguinte exercício
https://uploaddeimagens.com.br/imagens/scv_1521832766534215736132-jpg
como pode ser visto, no diagrama da classe gênero contem os métodos get e ToString, porem eu n encontrei a utilidade para os 2, ou resolvo usando um ou usando o outro, alguem saberia me dizer o que estou fazendo de errado? ou se é assim msm?
Métodos setters servem para atribuir valor a um atributo.
Quando você faz isso:
Usuario usuario = new Usuario();
System.out.println(usuario);
Sai um dados estranhos né?
Esses dados são o indentificador do objeto.
Quando você passa apenas o objeto no System.out.println, implicitamente, o método toString é chamado, ficando assim:
System.out.println(usuario.toString());
Se você sobrescrever o método toString, os dados serão diferentes, não serão mais aqueles números estranhos.
@Override
public String toString() {
return "Foi chamado o método toString implicitamente.";
}
na proxima vez que você fizer: System.out.println(usuario);, a saída no console será: “Foi chamado o método toString implicitamente.”.
me desculpe, eu me confundir na hora e apresentar minha duvida, a questão é os métodos Get, n estou vendo a logica de ter um método get e um toString na mesma classe, ja que os 2 serve para recuperar valores, pq na hora de imprimir a informação eu utilizo
String relatorio = “Relatório de autores:”;
for (Genero gen : registro) {
if (gen == null) {
break;
}
relatorio += “\n” + gen;
}
JOptionPane.showMessageDialog(null, relatorio);
System.exit(0);
ou
String relatorio = “Relatório de autores:”;
for (Genero gen: registro) {
if (gen == null) {
break;
}
relatorio += “\n” + aut.getCodigo() + " - " + aut.getDescricao();
}
JOptionPane.showMessageDialog(null, relatorio);
System.exit(0);
mais nunca os 2 metodos
O get retorna um atributo em especifico, o toString pode ser qualquer coisa, se você precisa retornar apenas o codigo, você utilizará o getCodigo.
Se quer uma mensagem estilizada sobre o objeto, pode usar o toString
entendi, então para o exercício em questão, meio que o get n tem utilidade nê?
Ao meu ver, o toString() pode ser usado no lugar dos getters nesse exemplo, já que quer somente um relatório.
Mas ainda sim, eu usaria get, o leitor quando bater o olho no getAlgumaCoisa, sabera que retornara algumaCoisa.
Eu não vejo utilidade no toString() fora do ramo academico