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

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

Boa noite, estou com problemas nesse exercício.

Segue os erros:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    Marcio cannot be resolved to a variable
    The method setRg(String) in the type Funcionario is not applicable for the arguments (int)
    The method setCpf(String) in the type Funcionario is not applicable for the arguments (int)
    The literal 3244783245 of type int is out of range 
    Diretor cannot be resolved to a variable
    The constructor Data(int, int, int) is undefined

    at src.TestaFuncionario.main(TestaFuncionario.java:11)

Agora segue meu codigo:

Classe Funcionario

public class Funcionario {
    private String nome;
    private int idade;
    private String rg;
    private String cpf;
    private String departamento;
    private Double salario;
    private Data dataEntrada;
    private double aumentoSalario;


    //Setar nome
    public void setNome(String nome){ //Metodo publico para mudar o nome
        this.nome = nome;
    }
    //Pegar nome
    public String getNome(){
        return this.nome;
    }
    //Setar idade
    public void setIdade(int idade){
        this.idade = idade;
    }
    //Pegar idade
    public int getIdade(){
        return this.idade;
    }
    //Setar rg
    public void setRg(String rg){
        this.rg = rg;
    }
    //Pegar rg
    public String getRg(){
        return this.rg;
    }
    //Setar cpf
    public void setCpf(String cpf){
        this.cpf = cpf;
    }
    //Pegar cpf
    public String getCpf(){
        return this.cpf;
    }
    //Setar departamento
    public void setDepartamento(String departamento){
        this.departamento = departamento;
    }
    //Pegar departamento
    public String getDepartamento(){
        return this.departamento;
    }
    //Setar salario
    public void setSalario(double salario){
        this.salario = salario + aumentoSalario;
    }
    //Pegar salario
    public double getSalario(){
        return this.salario;
    }
    //Setar data de entrada
    public void setDataEntrada (Data dataEntrada){
        this.dataEntrada = dataEntrada;
    }
    //Pegar data de entrada
    public Data getDataEntrada(){
        return this.dataEntrada;
    }
    //Setar aumento
    public void setAumentoSalario(double aumentoSalario){
        this.aumentoSalario = aumentoSalario;
    }
    //Setar promocao
    public void setPromocao(String promocao){
        this.departamento = promocao;
    }
}

Classe TestaFuncionario

public class TestaFuncionario {

    public static void main (String [] args){

        Empresa e1 = new Empresa();
        e1.empregados = new Funcionario[5];

        Funcionario f1 = new Funcionario(); //Instancia da classe Funcionario
        f1.setNome(Marcio);
        System.out.println (f1.getNome());
        f1.setIdade(30);
        f1.setRg(123123123);
        f1.setCpf(3244783245);
        f1.setDepartamento(Diretor);
        f1.setSalario(15000);
        f1.setDataEntrada(new Data(02,04,2008));

        e1.mostraTodasInfos();

    }

}

Classe Data

public class Data {
    int dia;
    int mes;
    int ano;

    public void preencheData(int dia, int mes, int ano){
        this.dia = dia;
        this.mes = mes;
        this.ano = ano;
    }

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

}

Classe Empresa

public class Empresa {
    String nome;
    String razaoSocial;
    String cnpj;
    String endereco;
    String proprietario;
    Funcionario[] empregados;
    int livre = 0;

    //Metodo para adicionar funcinario em uma posição da memoria livre
    void addFuncionario(Funcionario f){
        this.empregados[this.livre] = f;
        this.livre++;
    }

    void mostraTodasInfos(){
        for (int i=0; i < this.empregados.length; i++){
            Funcionario empregados = this.empregados[i];
            if (empregados == null) continue;
                System.out.println("Funcionario na posição: " + i);
                System.out.println("Nome: "+ this.empregados[i].getNome());
                System.out.println("Idade: " + this.empregados[i].getIdade());
                System.out.println("Rg: " + this.empregados[i].getRg());
                System.out.println("CPF: " + this.empregados[i].getCpf());
                System.out.println("Departamento: "+ this.empregados[i].getDepartamento());
                System.out.println("Salario: R$"+ this.empregados[i].getSalario());
                System.out.println("Data de entrada: "+ this.empregados[i].getDataEntrada().getFormataData() + "\n");

        }
    }

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

}
4 respostas

Márcio,

O valor máximo de um int é 2147483647 e o valor 3244783245 do CPF ultrapassa esse valor. O CPF dificilmente será utilizado para um cálculo então nao há a necessidade de ser um int poderia ser uma String.

Abraço.

Opa, bom dia João!

Mas o meu CPF é uma string, não sei pq está dando out of range .

Abraço.

solução!

Marcio,

Troque as seguintes linhas:

f1.setRg(123123123);
 f1.setCpf(3244783245);

por:

f1.setRg("123123123");
 f1.setCpf("3244783245");

Opa João,

Muito obrigado!! Nem passou pela minha cabeça lembrar das aspas...putz ! ahhahahahaha

Vlw , abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software