Olá. Não estou entendendo o porque que está dando o erro abaixo: Exception in thread "main" java.lang.Error: nresolved compilation problem: The constructor Data(int, int, int) is undefined at TestaPrograma.main(TestaPrograma.java:29)
Segue o Codigo que tenho. Se puderem me explicar onde estou errando seria de grande ajuda. Obrigado !
public class Data { int dia; int mes; int ano;
// Data dataEntrada=new Data();
public void preencheData (int dia, int mes, int ano) { this.dia = dia; this.mes = mes; this.ano = ano; } public String getFormatada(){ String data = this.dia + "/"+ this.mes + "/" + this.ano; return data; } }
public class Empresa { String nome; String cnpj; Funcionario[] empregados; // Array de Funcionario int livre = 0; //variavel para iniciar o cadastro de Funcionarios
void adiciona (Funcionario func){ this.empregados[this.livre] = func; this.livre++; }
void mostraEmpregados() { for (int i = 0; i < this.livre; i++) { System.out.println("Funcionário na posição: " + i); System.out.println("Nome do Funcionário: " + this.empregados[i].getNome()); System.out.println("R$" + this.empregados[i].getSalario()); } }
boolean contem(Funcionario f) { for (int i = 0; i < this.livre; i++) { if (f == this.empregados[i]) { return true; } } return false; }
}
public class Funcionario { private double salario; //String dataEntrada; String RG; private String nome;
public Data dataEntrada=new Data(); public Data getDataEntrada(){ return this.dataEntrada; } public void setDataEntrada (Data dataEntrada) { this.dataEntrada = dataEntrada; }
public void recebeAumento (double aumento) { this.salario += aumento; }
public double calculaGanhoAnual () { return this.salario += salario * 11; }
public double getSalario(){ return this.salario; } public void setSalario (double salario) { this.salario = salario; }
public String getNome (){ return this.nome; } public void setNome (String nome) { this.nome = nome; }
void mostra(){ System.out.println("Nome " + this.nome); System.out.println("Salario " + this.salario); System.out.println("RG " + this.RG); System.out.println("Dia da Admissão " + this.dataEntrada.dia); System.out.println("Data da Admissão " + this.getDataEntrada().getFormatada()); System.out.println("Ganho Anual " + this.calculaGanhoAnual()); } }
public class TestaPrograma {
public static void main(String[] args) {
Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[4];
for (int i = 0; i < empresa.empregados.length; i++) { Funcionario func = new Funcionario(); func.setSalario(1000 + i 100);// = 1000 + i 100; func.setNome ("Func" + i); // = "Func" + i; empresa.adiciona(func); } empresa.mostraEmpregados();
// como a array tem 5 espaços, tenho que abrir um If no metodo adiciona para ñ dar erro !!
Funcionario f = new Funcionario(); f.setNome("func1"); // = "func1";
Funcionario f1 = new Funcionario(); f1.setNome("Eu1"); // = "Eu1"; f1.setSalario(100); f1.RG = "123"; //f1.dataEntrada.preencheData(8, 8, 1986); f1.setDataEntrada(new Data(8, 8, 1986));
Funcionario f2 = new Funcionario(); //f2.nome = "Eu2"; f2.setSalario(2000); f2.RG = "123"; //f2.dataEntrada = "01/01/2011";
Funcionario f3 = new Funcionario(); //f3.nome = "Eu3"; f3.setSalario(3000); f3.RG = "456789"; //f3.dataEntrada = "01/01/2013";
f1.recebeAumento(50); //f1.mostra(); //f1.calculaGanhoAnual();
f2 = f1;
//System.out.println("salario " + f1.salario + " aumento de ");
if(f1 == f2){ System.out.println("salario de f1 e f2 são iguais"); }else{ System.out.println("salario de f1 e f2 são diferentes"); } } }