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

Estou com dificuldade para assimilar a classe teste empresa

Este é o meu código onde crio a classe empresa:

public class Empresa {
    private String nome;
    public void setNome(String nome){
        this.nome = nome;
    }
    public String getNome(){
        return this.nome;
    }
    private String CNPJ;
    public void setCNPJ(String CNPJ){
        this.CNPJ = CNPJ;
    }
    public String getCNPJ(){
        return this.CNPJ;
    }
    private Funcionario[] funcionarios;
    public Funcionario getFuncionario(int posicao){
        return this.funcionarios[posicao];
    }
    private int contador = 0;
    private int arrayLength = 0;
    public void adicionar(Funcionario f) {
        this.funcionarios[this.contador] = f;
        contador++;
    }
    public void mostraEmpregados(){
        for (int i = 0; i < funcionarios.length; i++){
            if (this.funcionarios[i] == null) continue;
                int a = 1 + i;
                System.out.println("Funcionario nº " + a);
                System.out.println("Salário = R$" + this.funcionarios[i].getSalario());
        }
    }
    public void mostraTodasAsInformacoes(){
        for (int i = 0; i < funcionarios.length; i++){
            if (this.funcionarios[i] == null) continue;
                int a = 1 + i;
                System.out.println("Funcionario nº " + a);
                this.funcionarios[i].mostra();
        }
    }
    public boolean contem(Funcionario f){
        for (int i = 0; i < this.contador;i++) {
            if ( f == this.funcionarios[i]) {
                System.out.println("Já existe");
                return true;
            }
        }
        System.out.println("Não existe");
        return false;
    }
    public Empresa(){}
    public Empresa(int arrayLength){
        this.arrayLength = arrayLength;
        this.funcionarios = new Funcionario[this.arrayLength];
    }
}

E este é o meu código de testa empresa:

class TestaEmpresa {
  public static void main(String[] args) {
        Empresa ACME = new Empresa(5);
      }
}

Está correto o método q criei ambas as classes? Como eu poderia testar para saber o tamanho da array criada? Estou pensando em algo como:

System.out.println(this.arrayLength);
3 respostas
solução!

Oi Felipe, tudo bem?

É isso mesmo!

Além disso, você poderia pegar o valor recebido no construtor e repassar direto para o array. Algo como:

public Empresa(int arrayLength){
    this.funcionarios = new Funcionario[arrayLength];
}

Faz sentido? Abraço!

Obrigado, Lucas. No final acabei resolvendo assim:

public class Empresa {
\\...
    public void tamanhoArray(){
        System.out.println(this.arrayLength);
    }
}
class TestaEmpresa {
  public static void main(String[] args) {

  Empresa ACME = new Empresa();
  ACME.tamanhoArray();

  }
}

class Empresa{

private Funcionario [] empregados; private String cnpj; private String nome;

public Empresa(int num){ this.empregados = new Funcionario[num]; }

public void setCNPJ(String cpf){ this.cnpj = cnpj; }

public String getCNPJ(){ return this.cnpj; }

public void setNome(String nome){ this.nome = nome; }

public String getNome(){ return nome; }

public Funcionario getFuncionario(int posicao) { return this.empregados[posicao]; }

}