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

Variavel this.livre Exercicio 4 da aula 4

E ae galera, Seguinte, entendi o funcionamento, mas não entendi onde a variavel livre é incrementada, pois em nenhum momento usamos o método adiciona da classe Empresa. E la sim tem o livre++. Entao como no método abaixo quando uso o for ele sabe que tem tantos arrays? Eu fiz o exercico e rodou, mas fiquei olhando e revendo o código e em nenhum momento foi chamado o adiciona.

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

Classe Empresa

class Empresa {
    String nome;
    String cnpj;
    Funcionario[] empregados;
    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("Nome do Funcionario: "+this.empregados[i].nome);
            System.out.println("Departamento: "+this.empregados[i].departamento);
            System.out.println("Salario Registrado: R$"+this.empregados[i].salario);
            System.out.println("Data de Entrada: "+this.empregados[i].entradaBanco.formataData());
            System.out.println("Registro de Identidade: "+this.empregados[i].RG);
            System.out.println("Salario Base Anual: "+this.empregados[i].calculaGanhoAnual());
            System.out.println("");
        }
    }
}

Testa Empresa

class testaEmpresa {
    public static void main(String[] args) {

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

        for(int i = 0; i < 10; i++){
            Funcionario f1 = new Funcionario();
            f1.nome = "Cleiton";
            f1.departamento = "Desenvolvimento";
            f1.salario = 1000 + i * 100;
            f1.entradaBanco = new Data();
            f1.entradaBanco.preencheData(12,6,1984);
            f1.RG = "378917239871";
            empresa.adiciona(f1);
        }        

        //empresa.empregados[9].mostraDadosFuncionario();

        empresa.mostraEmpregados();

    }
}
5 respostas
solução!

Cleiton, no TestaEmpresa, voce chama o método adiciona 10 vezes com o for.

Me desculpa, acho que estudei demais por hoje. Foi extrema falta de atenção. Obrigado mesmo.

Só uma observação nos nomes das classes mesmo quando for nome duplo, tu coloca os dois nomes com letras maiúsculas, diferente das variáveis ou métodos como você já faz.

class TestaEmpresa

mostraEmpregados()

entradaBanco

Entendi tem algum lugar que tem boas práticas para Java? Quanto ao estudo parei por hoje, foi muita falta de atenção minha.

Cleiton, eu aprendo algumas coisas na faculdade, nos cursos daqui e o resto é procurando no google mesmo. Pesquiso algo e coloco o java conventions, tipo assim: java conventions class name.

E quanto a falta de atenção sempre acontece mesmo, a gente fica tão focado que as vezes não enxerga.

:DDD