Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Modificadores de acesso - exercicio 3

// isto é um objeto                                                                                                                     
class Funcionario {                                                                                                                           
    private int    idFuncionario;                                                                                                                         
    private String departamento;
//  String dataEntrada;
    private DataFuncionario   dataEntrada = new DataFuncionario(); //DataFuncionario vem da classe DataFuncionario
    private double salario;                                                                                                                       

    private DadosFuncionario nome = new DadosFuncionario();
    private DadosFuncionario cpf  = new DadosFuncionario();
    private DadosFuncionario rg   = new DadosFuncionario();

    private Endereco         rua    = new Endereco();   
    private Endereco         bairro = new Endereco();
    private Endereco         cidade = new Endereco();
    private Endereco         estado = new Endereco();
    private Endereco         cep    = new Endereco();   

   // método recebe aumento
   public void recebeAumento(double valorAumento) {                                                                                                   
        this.salario += valorAumento; 
    };  

   //método calcula ganho anual
   // este metodo não pode ser void porque precisa retornar parametro.    
   public double getCalculaGanhoAnual() {
          double salarioAnual = this.salario * 12;
          return salarioAnual;   
    };

    public void mostra() {
         System.out.println("idFuncionario: "  + this.idFuncionario);                         
         System.out.println("departamento : "  + this.departamento);                        
         System.out.println("dataEntrada  : "  + this.dataEntrada);                        
         System.out.println("salario      : "  + this.salario);                        

//       System.out.println("nome         : "  + this.nome);
//       System.out.println("cpf          : "  + this.cpf);
//       System.out.println("rg           : "  + this.rg);
//                                               
//       System.out.println("rua          : "  + this.rua);
//       System.out.println("bairro       : "  + this.bairro);
//       System.out.println("cidade       : "  + this.cidade);
//       System.out.println("estado       : "  + this.estado);
//       System.out.println("cep          : "  + this.cep);

         System.out.println("nome         : "  + nome.nomeFuncionario);
         System.out.println("cpf          : "  + cpf.cpfFuncionario);   
         System.out.println("rg           : "  + rg.rgFuncionario);    

         System.out.println("rua          : "  + rua.ruaEndereco);      
         System.out.println("bairro       : "  + bairro.bairroEndereco);
         System.out.println("cidade       : "  + cidade.cidadeEndereco);
         System.out.println("estado       : "  + estado.estadoEndereco);
         System.out.println("cep          : "  + cep.cepEndereco);      


         System.out.println("salario atual: " + this.salario);          
         System.out.println("ganho anual:   " + this.getCalculaGanhoAnual());

         System.out.println("Dia: " + this.dataEntrada.diaDataFuncionario);
         System.out.println("Mês: " + this.dataEntrada.mesDataFuncionario);
         System.out.println("Ano: " + this.dataEntrada.anoDataFuncionario);

         System.out.println("Data de entrada: " + this.dataEntrada.getFormatada());
    }; 

    public int getIdFuncionario() {
        return this.idFuncionario;
    };

    public void setIdFuncionario (int idFuncionario) {
        this.idFuncionario = idFuncionario;
    };   

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

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

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

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

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

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

    public DadosFuncionario getCpf() {
        return this.cpf;
    };

    public void setCpf (DadosFuncionario cpf) {
        this.cpf = cpf;
    };

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

    public void setRg (DadosFuncionario rg) {
        this.rg = rg;
    };    

    public Endereco getRua() {
        return this.rua;
    };

    public void setRua (Endereco rua) {
        this.rua = rua;
    };

 public Endereco getBairro() {
        return this.bairro;
    };

    public void setBairro (Endereco bairro) {
        this.bairro = bairro;
    };

    public Endereco getCidade() {
        return this.cidade;
    };

    public void setCidade (Endereco cidade) {
        this.cidade = cidade;
    };

    public Endereco getEstado() {
        return this.estado;
    };

    public void setEstado (Endereco estado) {
        this.estado = estado;
    };

    public Endereco getCep() {
        return this.cep;
    };

    public void setCep (Endereco cep) {
        this.cep = cep;            
    };

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

};
----
class AtualizaFuncionario {

    public static void main(String[] args) {
        Funcionario f1 = new Funcionario();
        Funcionario f2 = new Funcionario();

        f1.setIdFuncionario(0001); // atributo da classe funcionario
        f1.setDepartamento("Informatica");         

        f1.setSalario(1000);      
        f1.recebeAumento(500); //metodo da classe Funcionario

//      f1.nome.nomeFuncionario = "Joao das Coves";  // attributos da Classe DadosFuncionario
        f1.nome.setNome("Joao das Coves");

        f1.dataEntrada   = new DataFuncionario();
        f1.dataEntrada.preencheData(20, 12, 2016);
codigo continua....
 };

A alteração funcionou para idFuncionario e Salario, como devo proceder para os demais atributos que são de outra clase, como por exemplo nome do funcionario e data de entrada

1 resposta
solução!

Oi Luis, tudo bem ?

Então cara reparei que você ficou com algumas dúvidas de orientação a objetos, vou tentar tirar elas e assim acredito que você consiga resolver essa dúvida.

Vamos lá, quando a gente altera de String para o nosso tipo os seguintes campos nome, cpf e rg, isso tudo representa os dados do usuário, nisso criamos uma classe para fazer essa representação : DadosFuncionario, isso significa que em nossa classe podemos remover esses três atributos e deixar apenas a classe DadosFuncionario que os representa, e ai teremos o seu getter e setter.

O mesmo acontece com a classe Endereco que substitui todas as strings que havíamos antes e também terá seus respectivos getters e setters.

Os getters são utilizados para recuperar valores e os setters são utilizados para atribuir valor.

Espero ter ajudado !

Abraços