Informática, perguntado por ronildoufpi, 10 meses atrás

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.

Soluções para a tarefa

Respondido por marcosbrinner2
7

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.


ronildoufpi: Ajudou muito, parabéns!!!
Perguntas interessantes