Os construtores são métodos especiais, que são chamados no momento em que o objeto é criado. Assim como os métodos, os construtores também podem receber parâmetros. Normalmente, esses parâmetros servem para inicializar os atributos do objeto. É possível ter vários construtores em uma classe e um construtor pode chamar outro construtor.Nesse contexto, analise o seguinte código:
1 public class InstrumentoMusical {
2 private String nome;
3 private String som;
4
5 public InstrumentoMusical(String nome) {
6 this.nome = nome;
7 som = "Não possui ou está quebrado.";
8 }
9
10 public InstrumentoMusical(String nome, String som) {
11 this.nome = nome;
12 this.som = som;
13 }
14
15 public InstrumentoMusical(InstrumentoMusical outroInstrumento) {
16 nome = outroInstrumento.nome;
17 som = outroInstrumento.som;
18 }
19
20 public InstrumentoMusical() {
21 }
22 }
A partir das informações apresentadas acima, avalie as afirmações abaixo:
I – Uma classe pode ter vários construtores, desde que eles não possuam a mesma quantidade de parâmetros.
II – O terceiro construtor é inválido, pois ele está acessando diretamente os atributos privados de um objeto. Os atributos privados só podem ser acessados pelo próprio objeto.
III – A classe InstrumentoMusical é válida, mesmo sem o método main.
IV – O último construtor é válido mesmo tendo o corpo vazio.
Qual exatamente a alternativa correta?