Contrutores

3 respostas
L

Olá estou tentando fazer o exercício abaixo:

Faça com que sua classe Funcionario possa receber, opcionalmente, o nome do Funcionario durante a
criação do objeto. Utilize construtores para obter esse resultado.
Dica: utilize um construtor sem argumentos também, para o caso de a pessoa não querer passar o nome
do Funcionario.
Seria algo como:

class Funcionario {
      public Funcionario() {
          // construtor sem argumentos
      }
     public Funcionario(String nome) {
          // construtor que recebe o nome
     }
}

Por que você precisa do construtor sem argumentos para que a passagem do nome seja opcional?

Não estou sabendo definir uma solução para o exercicio, se puderem me ajudar.

Obrigado.

3 Respostas

D

Não entendi muito bem o que você quis dizer com “Não estou sabendo definir uma solução para o exercicio”, mas quanto aos construtores, funciona assim:

Se você não declarar, por default, ele já será sem argumentos e ação, no entanto, quando você declara um construtor o default não será utilizado a menos que você o declare explicitamente como no código que você colocou aí.

Quando a classe for estanciada, de acordo com a passagem de parâmetros o java irá utilizar um ou outro.

Lembrando que vc pode escrever vários construtores com diferentes tipos e números de parametros…

A

Você vai ter um atributo na sua classe chamado nome:
private String nome;

No seu construtor vazio, nao vai fazer nada com esse nome, mas no construtor que recebe o nome, fará:
this.nome = nome

Por isso quando a pessoa nao quiser passar um nome, ela chama o construtor sem argumentos, e o valor de nome continuará sendo nulo.

Pessoalmente, considero isso uma má prática, prefiro minimizar o número de construtores numa classe (geralmente 1) com apenas valores obrigatórios.

L

Ok, obrigado pessoal

Criado 7 de dezembro de 2016
Ultima resposta 7 de dez. de 2016
Respostas 3
Participantes 3