Ao tentar inserir um funccionario que nao existe, o arquivo nao compila. Como posso fazer para compilar o arquivo mesmo passando um funcionario inexistente?
Ao tentar inserir um funccionario que nao existe, o arquivo nao compila. Como posso fazer para compilar o arquivo mesmo passando um funcionario inexistente?
class Funcionario {
String nome; String departamento; double salario; Data dataEntradaNoBanco; long rg;
void recebeAumento (double valorAumento){ this.salario += valorAumento; }
double calculaGanhoAnual (){
return this.salario * 12; }
void mostra(){ System.out.println ("Nome " + this.nome); System.out.println ("Departamento " + this.departamento); System.out.println ("Salario " + this.salario); System.out.println ("Data " + this.dataEntradaNoBanco.getFormatada()); System.out.println ("RG " + this.rg); System.out.println ("Ganho Anual " + this.calculaGanhoAnual());
}
}
class Empresa {
String nome; long cnpj; Funcionario[] empregados; int telefone; int livre=0;
void adiciona (Funcionario f){
this.empregados[this.livre] = f; this.livre++; }
void mostraEmpregados(){ for (int i=0;i<this.livre; i++){ System.out.println ("Empregado na posicao " + i); System.out.println("R$ " + this.empregados[i].salario); }
}
void mostraTodasInformacoes (){ for (int i=0; i<this.livre; i++){ System.out.println("Empregado na posição " + i); empregados[i].mostra();
}
}
boolean contem (Funcionario f){ for(int i = 0; i<this.livre;i++){ if (f == empregados[i]){ System.out.println(f.nome); } }
return false; } }
class TesteEmpresa {
public static void main (String[] args){
Data data = new Data(); Empresa empresa = new Empresa(); empresa.empregados = new Funcionario[5];
Funcionario f1 = new Funcionario(); f1.nome = "Diogo"; f1.departamento = "Financas"; f1.salario = 5000; f1.dataEntradaNoBanco = new Data(); f1.dataEntradaNoBanco.preencherData(21,02,1977); f1.rg = 202304301; empresa.adiciona(f1);
Funcionario f2 = new Funcionario(); f2.nome = "Rafael"; f2.departamento = "Seguros"; f2.salario = 10000; f2.dataEntradaNoBanco = new Data(); f2.dataEntradaNoBanco.preencherData(11,01,1980); f2.rg =123114239; empresa.adiciona (f2);
//empresa.empregados[0].mostra(); //empresa.empregados[1].mostra();
//empresa.mostraEmpregados();
//empresa.mostraTodasInformacoes(); empresa.contem(f2); } }
class Data {
int dia; int mes; int ano;
void preencherData (int dia, int mes, int ano){
this.dia = dia; this.mes = mes; this.ano = ano; }
String getFormatada () {
return this.dia + "/" + this.mes + "/" + this.ano; } }
Olá Diogo, você poderia mandar o código? facilitaria o entendimento do problema, lembrete de usar a formatação do forum, para que o código fique separado das perguntas, espero por sua resposta para que eu possa lhe ajudar.
Diogo o código está compilando, eu testei ele aqui, so vi um erro, que foi no fechamento de {
na classe TestaEmpresa, mas pode ser pq eu tenha copiado e colado, de qualquer forma dá uma olhada.
O código está me retornando False
é isso mesmo que vc quer? porque não compilar é uma coisa e não mostrar o resultado esperado é outra, aguardo sua resposta.
Diogo me desculpe, o meu eclipse deu um bug e acabei não vendo o erro do seu código, existe sim um problema, na Empresa está assim:
class Empresa {
String nome;
long cnpj;
Funcionario[] empregados;
int telefone;
int livre = 0;
// metodos...
}
Mas ela tem que ficar assim:
class Empresa {
String nome;
long cnpj;
Funcionario[] empregados = new Funcionario[10] ;
int telefone;
int livre = 0;
//metodos...
}
Pois se você não instanciar empregados ela ainda não existe, lembre que empregados é um array de objetos e não um objeto só, e vc precisa dizer o tamanho dele, seja na hora que você declara na Classe como estamos fazendo, ou na hora que vc instância. ex:
class Empresa {
String nome;
long cnpj;
Funcionario[] empregados ;
int telefone;
int livre = 0;
//metodos...
}
class TestaEmpresa{
public static void main(String[] args) {
Empresa e = new Empresa();
Funcionario f = new Funcionario();
e.empregados = new Funcionario[10]; // instanciamos o array aqui
e.adiciona(f);
e.mostraEmpregados();
}
}
espero que tenha entendido, se tiver ficado com dúvidas não existe em perguntar.
Fiquei com o mesmo problema a função se autocompleta com uma objeto já existente . / To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. */ package funcionario;
/* @author teste01 / public class TesteEmpresa { public static void main(String []args){ Empresa empresa = new Empresa(); empresa.empregados = new Funcionario [10];
Funcionario Lucas = new Funcionario(); Lucas.anual = 12000; Lucas.departamento = "qual quer um"; Lucas.salario = 1650.00; Lucas.pessoa = new Pessoa(); Lucas.pessoa.nome = "Lucas Alves "; Lucas.pessoa.rg = 5648949;
empresa.adicionar(Lucas);
Funcionario Alves = new Funcionario(); Alves.anual = 12000; Alves.departamento = "qual quer um"; Alves.salario = 1450.00; Alves.pessoa = new Pessoa(); Alves.pessoa.nome = "Alves Cardoso"; Alves.pessoa.rg = 5648949;
empresa.adicionar(Alves);
Funcionario Cardoso = new Funcionario(); Cardoso.anual = 12000; Cardoso.departamento = "qual quer um"; Cardoso.salario = 2000.00; Cardoso.pessoa = new Pessoa(); Cardoso.pessoa.nome = "Cardoso de jesus"; Cardoso.pessoa.rg = 5648949;
empresa.adicionar(Cardoso);
//empresa.mostraEmpregados(); empresa.mostrarTudo(); empresa.procurar(Joao); } }
package funcionario;
public class Empresa { String nome; String cnpj; Funcionario [] empregados ; //aqui eu criei um array do tipo funcionario sem um tamanho definido String email; String endereço; int livre = 0;
void adicionar (Funcionario func){ this.empregados[this.livre] = func; //o atributo empregados dessa classe e livre dessa classe this.livre ++; }
void mostraEmpregados (){ for(int i = 0 ; i < this.livre ; i ++){ System.out.println("Funcionario " + empregados[i].pessoa.nome );
} }
void mostrarTudo(){ for(int i = 0 ; i < this.livre ; i ++){ // System.out.println("Funcionario : "+empregados[i].pessoa.nome); // System.out.println("Departamento : "+empregados[i].departamento); // System.out.println("Salario : "+empregados[i].salario); // System.out.println("Rg : "+empregados[i].pessoa.rg); // System.out.println("Salario anual : "+empregados[i].anual); this.empregados[i].mostra(); // mandei index por index e ele executou o método } } boolean procurar(Funcionario procura) { for (int i = 0; i < this.livre; i++) { if (procura == this.empregados[i]) { System.out.println("Encontrou "); return true; } } System.out.println("Nao encontrou"); return false; } }