Questão
A classe Marca possui um atributo chamado nome, que representa o nome da marca. Para facilitar a exibição das informações de um objeto dessa classe, é necessário sobrescrever o método toString, que é responsável por retornar uma representação textual do objeto. Considere a definição da classe:
public class Marca {
private String nome;
public Marca(String nome) {
this.nome = nome;
}
// método set e get
}
Com base na classe acima, escolha a alternativa que apresenta corretamente a sobrescrita do método toString para a classe Marca.
Opção A
@Override
public void toString() {
return nome.toUpperCase();
}
Opção B
@Override
public String toString() {
return "Marca: " + this.nome;
}
Opção C
@Override
public String toString() {
return "Atributos da classe Marca";
}
Opção D
@Override
public String toString(String nome) {
return "Nome da marca: " + nome;
}
Opção E
@Override
public void toString() {
System.out.println("Marca: " + nome);
}
B
A sobrescrita correta do método toString
deve retornar uma String
que representa o objeto. A opção B está correta porque o método toString
retorna uma String
que inclui o nome da marca, que é o comportamento esperado.
- Opção A está incorreta porque o método
toString
deve retornar umaString
, mas está declarado comovoid
. - Opção C está incorreta porque, embora retorne uma
String
, não inclui informações específicas do objeto. - Opção D está incorreta porque o método
toString
não deve ter parâmetros. - Opção E está incorreta porque o método
toString
deve retornar umaString
, mas está declarado comovoid
e imprime diretamente no console.