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

Dúvida no Ex. 4 da Aula 5 - Modificadores de acesso

Bom, essa é a resposta do instrutor:

public class Funcionario {
            // atributos

            public double getGanhoAnual() {
                return this.salario * 12;
            }

            public String getNome() {
                return this.nome;
            }

            public void setNome (String nome) {
                this.nome = nome;
            }

            public String getDepartamento() {
                return this.departamento;
            }

            public void setDepartamento (String departamento) {
                this.departamento = departamento;
            }

            public double getSalario() {
                return this.salario;
            }

            public void setSalario (double salario) {
                this.salario = salario;
            }

            public Data getDataEntrada() {
                return this.dataEntrada;
            }

            public void setDataEntrada (Data dataEntrada) {
                this.dataEntrada = dataEntrada;
            }

            public String getRg() {
                return this.rg;
            }
        }

Porque são criados getters e setters para os atributos à cima e não apenas um get ou set, como nos atributos GanhoAnual e Rg? Qual foi a intenção de criar um getter e um setter para cada atributo, e não só apenas um get ou setter?

4 respostas

na hora de criar um getter e setter automático pelo eclipse, podemos escolher na "janela" quais os atributos irão ter getter e setter, quais teão apenas um getter ou um setter ( se esse foi seu caso )

agora sobre o get GanhoAnual, não tem por que vc ter um método set dele sendo que ele vai receber o salário do objeto e multiplica-lo por 12, então ta tranquilo, agora o RG deve ter desmarcado la sem querer para ele não criar o método set.

espero ter ajudado

Obrigado pela resposta, mas não entendi!

solução!

Oi Vinícius,

veja que a classe Funcionario possui vários atributos privados:

public class Funcionario {

    private String nome;
    private double salario;
    private String departamento;
    private String rg;
    private Data dataEntrada;
}

Como esses atributos estão privados, para acessarmos ou modificarmos o conteúdo deles fora de um Funcionario precisamos de getters e setters, respectivamente.

É comum também querermos manipular o conteúdo de um atributo específico (em vez de todos os atributos de uma vez só), por isso criamos getters e setters para cada atributo privado que queremos manipular no nosso código.

Então, como queremos manipular o nome do Funcionario fora dessa classe e esse nome é um atributo privado, podemos criar métodos públicos: um getNome (getter) e um setNome (setter):

public class Funcionario {

    private String nome;
    private double salario;
    private String departamento;
    private String rg;
    private Data dataEntrada;

    public String getNome() {
        return this.nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }
}

A ideia é a mesma caso queiramos manipular os outros atributos privados fora da classe Funcionario.

Obrigado Felipe!