Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Get e Set para múltiplos campos

Já que o curso definiu que todos os atributos de Funcionário são do tipo private, seria possível criar os métodos Get e Set para todos os atributos de Funcionário? Na prática como isso funciona?

5 respostas

Bom dia Mário, tudo bem? Não fiz o curso mas imagino que você esteja falando de encapsulamento, que é exatamente isso que você falou, você "protege" os atributos da classe como private e cria métodos públicos que acessam seus atributos, por exemplo:

public class Funcionario{

    private int id;
    private String name;

    public int getId(){
        return id;        
    }
    public void setId(int id){
        this.id = id;
    }
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }

}

Era essa a sua dúvida?

Mário, tudo bem? você está falando realmente de encapsulamento. Avançe no curso e logo entenderá o conceito correto. Lembre-se da importância de não usar getters e setters para tudo tá bom? apenas para regras de negócios.

Abraço.

Felipe e André, obrigado pelas informações. O que eu queria dizer é se seria possível criar um método set que recebesse, por exemplo, nome, departamento e data de nascimento (todos os parâmetros do funcionário) e fizesse a inclusão/atualização deles todos num único comando, em vez. O mesmo valeria para o get.

Olá Mário, tudo bem?

Provavelmente, o que você está precisando é de um construtor que será visto no curso. Mas só adiantando como seria no exemplo do funcionário:

public class Funcionario{

    private int id;
    private String name;

    public Funcionario(int id, String name){
        this.id = id;
        this.name = name;
    }

    //getters e setters para cada atributo

}

Então, você instancia o objeto Funcionario da seguinte maneira:

Funcionario funcionario = new Funcionario(1, "Alex");

Veja que nesse exemplo já está sendo enviado o id e name do funcionário e, ao mesmo tempo, os atributos desse objeto já estão computados!

Era isso que precisava saber?

Caso quiser ver mais sobre o assunto, veja a aula https://cursos.alura.com.br/course/primeiros-passos-com-java/section/6/task/1

solução!

Você poderia simplesmente criar um construtor recebendo todos os parâmetros que irão preencher os atributos de sua classe, isso poderia substituir a função do set porém apenas no momento em que está instanciando um novo objeto.

Para que possa manipular os dados de um objeto já instanciado é necessário utilizar os getters and setters de todos os atributos de sua classe.