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

exercício 4 do módulo - Primeiros passos com Java - array

To precisando de um help no exercício 4 do módulo (Primeiros passos com Java - array). Vc tem o fonte do exercício resolvido para me passar com as classes ?


segue saída do console:

Funcionário na posição: 0 R$1000.0 Funcionário na posição: 1 R$1100.0 Funcionário na posição: 2 R$1200.0 Funcionário na posição: 3 R$1300.0 Funcionário na posição: 4 R$1400.0 Funcionário na posição: 5 Exception in thread "main" java.lang.NullPointerException at ComeçandoComOrientaçãoObjetos.Empresa.mostraFuncionarios(Empresa.java:18) at ComeçandoComOrientaçãoObjetos.TestarEmpresa.main(TestarEmpresa.java:15)

Minhas classes :

FUNCIONÁRIO

public class Funcionario {

String departamento; double salario; Data dataEntrada; String rg; String nome;

void recebeAumento(double valor) { this.salario += valor; }

double calculaGanhoAnual() { return this.salario * 12; }

void mostrar() { System.out.println(this.nome); System.out.println(this.dataEntrada.formataData()); System.out.println(this.salario); }

}

EMPRESA :

public class Empresa {

String razaoSocial; String cnpj; Funcionario[] funcionarios; int livre = 0;

void adicionar(Funcionario f) {this.funcionarios[this.livre] = f; this.livre++; }

void mostraFuncionarios() { for (int i = 0; i System.out.println("Funcionário na posição: " + i); System.out.println("R$" + this.funcionarios[i].salario); } }

void mostraTodasAsInformacoes() { for (int i = 0; i System.out.println("Funcionário na posição: " + i); this.funcionarios[i].mostrar(); } }

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

}

TESTAREMPRESA :

public class TestarEmpresa {

public static void main(String[] args) {

Empresa empresa = new Empresa();empresa.funcionarios = new Funcionario[10];

for (int i = 0; i Funcionario f = new Funcionario(); f.salario = 1000 + i * 100; empresa.adicionar(f); }empresa.mostraFuncionarios();}}


desde já muito obrigado !!

Fabrício de Oliveira Goiânia / GO

1 resposta
solução!

class Funcionario{ private String nome; private String departamento; private double salario; private Data dataAdimicao; private String RG; private int identificador; private static int proxFuncionario = 0;

public Funcionario(){ // }

public Funcionario(String nome){ this.nome = nome; this.identificador = proxFuncionario ++; }

public int getIdentificador(){ return this.identificador; }

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; }

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

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

public Data getDataEntrada(){ return this.dataAdimicao; }

public void setDataEntrada(Data dataentrada){ this.dataAdimicao = dataentrada; }

public String getRG(){ return this.RG; }

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

public void setAumento(double valorAumento){ this.salario += valorAumento; }

public double getGanhoAnual(){ return this.salario * 12; }

public void getMostra(){ System.out.println("Nome: "+this.nome); System.out.println("Departamento: "+this.departamento); System.out.println("Salario: "+this.salario); System.out.println("Data de Adimição: "+this.dataAdimicao.getFormatada()); System.out.println("RG: "+this.RG); System.out.println("Ganho Anual: "+this.getGanhoAnual()); } }

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

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

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

class Empresa{ public String nome; public String CNPJ; private Funcionario[] funcionarios; static int proxCodigo = 0;

//Metodo contrutor public Empresa(){ this.funcionarios = new Funcionario[10]; }

public void adiciona(Funcionario f) { this.proxCodigo++; this.funcionarios[this.proxCodigo] = f; }

public void mostraEmpregados(){ for(int i = 0; i < this.funcionarios.length;i++){ if(this.funcionarios[i]==null) continue; Funcionario func = this.funcionarios[i]; System.out.println("Funcionario nº " + i); System.out.println("Salario " + this.funcionarios[i].getSalario()); System.out.println(""); } }

public void mostraTodasAsInformacoes(){ for(int i = 0; i < this.funcionarios.length;i++){ if(this.funcionarios[i]==null) continue; Funcionario func = this.funcionarios[i]; func.getMostra(); System.out.println(""); } }

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

class TestaEmpresa{ public static void main(String[]args){ Empresa empresa = new Empresa(); empresa.nome = "Mercado Mercadão"; empresa.CNPJ = "12345678901234";

//Criando Funcionario Funcionario f1 = new Funcionario(); f1.setNome("Joao Silva"); f1.setDepartamento("Reporsitor"); f1.setSalario(1000); f1.setRg("123456"); Data data = new Data(); data.setData(1,1,2014); f1.setDataEntrada(data);

//Atribuindo funcionario a empresa empresa.adiciona(f1);

empresa.mostraTodasAsInformacoes(); } }

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