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 sentido, observe o código abaixo:
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 }
Considerando o código 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.
É correto o que se afirma em:
Alternativas
Alternativa 1:
I e II, apenas.
Alternativa 2:
II e III, apenas.
Alternativa 3:
III e IV, apenas.
Alternativa 4:
I, II e III, apenas.
Alternativa 5:
II, III e IV, apenas.
Respostas
Resposta:
II, III, IV apenas
Explicação:
I – Uma classe pode ter vários construtores, mesmo com a mesma quantidade de paramentros, o que manda é a ordem dos paramatros que não podem ser exemplo
Pessoa(string Nome, String Telefone) e Pessoa(String Telefone, String Email)
mas poderia ser
Pessoa(String Nome, int idade) r Pessoa(String email, String telefone)
Ou seja o overload de uma classe so não pode ser ambíguo com parâmetros do mesmo tipo na mesma sequencia
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.