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

O contador do método estático conta o construtor?

O contador deveria exibir o valor do funcionário inserido pelo construtor? Apenas quando eu chamo o método 'adiciona' é contabilizado a variável estática, porém não conta o do construtor.

public class TestaEmpresa{

    public static void main(String[] args) {

    int qtd=0;

    Empresa empresa = new Empresa(2);

    new Empresa(qtd);


     empresa.setCnpj("1111 Exercicio de modificacao de acesso aula cinco");


     empresa.setFuncionarios(new Funcionario[6]);

     Funcionario f1 = new Funcionario();

    //Construtor
     Funcionario joao = new Funcionario("Joao Cabral de Melo Neto First", 3000, 200 , "35.245.854-11", "Depto Agencioa", new Data(17,01,2018) );    
     empresa.adiciona(joao);

     Funcionario joana = new Funcionario("Joana Martins Ferraz", 3002, 300 , "132.245.854-11", "Depto Agencib", new Data(9,4,2018) );    
     empresa.adiciona(joana);

     f1.setSalario(1000);
     f1.rg = "50.12.15-X";
     f1.setNome("Primeiro Funcionario");
     f1.dpto = "Tralalalala ooooo";
     f1.setData(new Data(30,12,2017));

     f1.recebeAumento(100.0);
     empresa.adiciona(f1);

     Funcionario f2 = new Funcionario();
     f2.nome="Segundo Aee";
     f2.setSalario(2000);
     f2.recebeAumento(200.0);
     f2.rg = "35.112.23-X";
     f2.dpto = "Oiiii Tralalalala ooooo";
     f2.setData(new Data(05,12,2018));
     empresa.adiciona(f2);


     Funcionario f3 = new Funcionario();
     f3.nome="Terceiro Thrice";
     f3.setSalario(3000);
     f3.rg = "42.256.89-3";
     f3.dpto = "Oiiii Tralalalala ooooo uooo";
     f3.setData(new Data(30,12,2017));
     empresa.adiciona(f3);


          Funcionario f4 = new Funcionario();
     f4.nome="Quarto Candy";
     f4.setSalario(4000);
     f4.rg = "42.444.89-3";
     f4.dpto = "Pist the best Of";
     f4.setData(new Data(9,04,2018));
     empresa.adiciona(f4);


    empresa.mostraTodasAsInformacoes();    
    //empresa2.mostraTodasAsInformacoes();    

    boolean teste = empresa.contem(f2);

    System.out.println(teste);

    /* Verificar porque o array abaixo está vindo Vazio, averiguar a classe Empresa */
    empresa.tamanhoArray();

    System.out.println("\n Total de funcionários inseridos = "+ Funcionario.getTotaldeFuncionarios());

    System.out.println("\n---------------   FIM   -----------------");

    }    

}
class Funcionario{

    String nome, dpto, rg;
    double salarioAnual;
    private double salario;
    double aumentosalario;
    private Data formata;

    private static int totalFuncionarios =0;

    Funcionario() {

        this.totalFuncionarios = Funcionario.totalFuncionarios + 1;
    }


    public static int getTotaldeFuncionarios() {

        return Funcionario.totalFuncionarios;
    }



    public Funcionario(String nome) {

        this.nome = nome;

    }

    public Funcionario(String nome, double salario, double aumentosalario, String rg, String dpto, Data formata) {

        this.nome=nome;
        this.salario=salario;
        this.aumentosalario=aumentosalario;
        this.rg= rg;
        this.dpto= dpto;
        this.formata= formata;
    }

    public String getNome(){

        return this.nome;
    }

    public void setNome(String nome) {

        this.nome =nome;

    }

    public String getDpto(){

        return this.dpto;
    }

    public void setDpto(String depto){

        this.dpto = dpto;
    }

    public String getRg(){

        return this.rg;

    }

    public void setRg(String rg){

        this.rg= rg;
    }

    public void recebeAumento(double aumento){

        this.aumentosalario = this.salario + aumento;
    }

    public double getAumentoSalario(){

        return this.aumentosalario;

    }

    double getcalculaGanhoAnual(){

        return salarioAnual = this.salario * 12;
    } 

    public void setSalario(double salario){

        this.salario = salario;

    }

    public double getSalario(){

        return this.salario;

    }

    public void setData(Data formata){

        this.formata =formata ;
    }

    public Data getData() {

        return this.formata;
    }

    public void mostra(){

        System.out.println("Funcionario:" + getNome());
        System.out.println("RG:" + getRg());
        //System.out.println("Data de entrada: " +this.getData().dia+"/"+this.getData().mes+"/"+this.getData().ano);
        System.out.println("Data de entrada: " + this.getData().formata());

        System.out.println("Trabalha no departamento de:" + getDpto());
        System.out.println("salario atual:" + getSalario());
        System.out.println("salario com aumento:" + getAumentoSalario());
        System.out.println("Salario Anual: " + getcalculaGanhoAnual());

    }    

}
1 resposta
solução!

Você está instanciando o funcionario através do construtor com argumentos.. Nele você não está incrementando o contador.

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