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

Nao esta compilando !!! Ex.2 da aula 5

Depois que coloquei os atributos como private e criei os getters e setters o programa nao esta compilando.Alguem sabe porque???

public class funcionario {

private String nome;
private String departamento;
private double salario;
private Data admissao;
private int rg;

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 int getRg(){
    return this.rg;
                  }

public void setRg(int rg){
    this.rg = rg;
                         }
public void getAumento(double aumentoSalario){
this.salario+=aumentoSalario;                }

public double getGanhoAnual(){

return this.salario * 12;
                             }

public double DecTerceiro(){
    return this.salario * 2;
                           }
public void setData(Data admissao){
    this.admissao = admissao;
                                  }
public Data getAdmissao(){
    return this.admissao
                         }


}
public void mostra(){
System.out.println("\nNome:" + this.getNome);
System.out.println("Departamento:" + this.getDepartamento);
System.out.println("Salario:R$" + this.getSalario);
System.out.println("Data de admissao:" + this.admissao.getFormatada());
System.out.println("Numero RG:" + this.getRg);
System.out.println("Ganho Anual:R$" + this.getGanhoAnual());
System.out.println("valor decimo terceiro salario:R$" + this.DecTerceiro());

}




class Data{

    int dia; 
    int mes ;
    int ano;
public void setPreencheData(int dia, int mes, int ano){

        this.dia = dia ;
        this.mes = mes ;
        this.ano = ano ;
    }

    public String getFormatada(){
            return this.dia + "/" + this.mes + "/" + this.ano;
                               }
        }

class empresa{

    String nome;
    String Cnpj;
    String nomeFantasia;
    String endereco;

    funcionario[] empregado;

    int livre;

    void adicionar(funcionario f){

        this.empregado[this.livre] = f ;
        this.livre++;
    }

    void mostraEmpregados(){
        for(int i = 0; i < this.livre;i++){
 System.out.println("\nFuncionario na Posicao:" + i);
 System.out.println("\nFuncionario nome:"+this.empregado[i].nome);
 System.out.println("salario: R$:"+this.empregado[i].salario);

                                                      }                    
                           }

                           boolean contem(funcionario f) {
            for (int i = 0; i < this.livre; i++) {
                if (f == this.empregado[i]) {
                    return true;
                }
            }
            return false;
        }
    }

public class Dados{

public static void main(String[]args){

empresa jmf = new empresa();
 jmf.empregado = new funcionario[10];


funcionario f1= new funcionario();
Data admissao1 = new Data();
admissao1.setPreencheData(16,12,2013);
f1.setData(admissao1);
f1.setNome("Rodrigo Oliveira");
f1.setDepartamento("Administrativo");
f1.setSalario(3000.00);
f1.setRg(12345);
f1.recebeAumento(1000.00);
jmf.adicionar(f1);

//funcionario f2 =f1 ;
funcionario f2 = new funcionario();
Data admissao2 = new Data();
admissao2.setPreencheData(10,05,2002);
f2.setData(admissao2);
f2.setNome("Marcus Ferreira");
f2.setDepartamento("Administrativo");
f2.setSalario(4000.00);
f2.setRg(54321);
f2.recebeAumento(1000.00);
jmf.adicionar(f2);

if (f1==f2){

    System.out.println ("\n iguais");
}else{
        System.out.println ("\n Diferentes ");
}


jmf.empregado[0].mostra();
jmf.empregado[1].mostra();
jmf.mostraEmpregados();
}

}
7 respostas

João, tudo bem ?

Lembra que quando colocamos nossos atributos como private, o único local que teremos acesso é dentro da própria classe.

Caso desejamos acessa-los fora da classe devemos utilizar os getters e setters.

Acho que falta você fazer essa refatoração no seu código, alterar os locais que você usa diretamente, como :

Funcionario f = new Funcionario();
f.salario = 100;

Para :

Funcionario f = new Funcionario();
f.setSalario(100);

Espero ter deixado claro.

Abraços

Entendi Matheus, mas dessa forma que fiz não esta correta?

funcionario f1= new funcionario();
Data admissao1 = new Data();
admissao1.setPreencheData(16,12,2013);
f1.setData(admissao1);
f1.setNome("Rodrigo Oliveira");
f1.setDepartamento("Administrativo");
f1.setSalario(3000.00);
f1.setRg(12345);
f1.recebeAumento(1000.00);
jmf.adicionar(f1);

Essa parte sim, está impecável. Contudo no seu método mostra, acredito que ficou faltando ou () em alguns métodos, ou senão, você chamar o próprio atributo


System.out.println("\nNome:" + this.getNome);
System.out.println("Departamento:" + this.getDepartamento);
System.out.println("Salario:R$" + this.getSalario);
System.out.println("Data de admissao:" + this.admissao.getFormatada());
System.out.println("Numero RG:" + this.getRg);
System.out.println("Ganho Anual:R$" + this.getGanhoAnual());
System.out.println("valor decimo terceiro salario:R$" + this.DecTerceiro());
solução!

Nesse tipo de caso, que está dentro da própria classe, a galera utiliza com mais frequência o próprio atributo, invés do getter.

Espero ter ajudado.

Abraços

Agora entendi Vlw Matheus.

Ajudou e muito

Abraço

Valeu, bons estudos, o que precisar só abrir um novo tópico :D