1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

Get em Vetor de Objeto

Tenho uma Superclasse pessoa e 2 subclasses Fisica e Juridica que extendem pessoa. Dentro da Fisica tenho 1 Subclasse Funcionario e dentro de Funcionario tenho 3 subclasses Secretaria, Gerente e Tecnico.

Criei um array de pessoas na classe empresa, estou populando corretamente. Porem queria imprimir esse array.

Criei os getters nas classes.

Porem tem attributos a classe Funcionario que nao tem na Juridica.

Como eu faço para imprimir uma pessoa dentro do vetor buscando os getters

As classes estão aqui:

public class Empresa {
    Pessoa [] pessoas;
    private static int totalPessoas = 0;
    private int capacidade;

    public Empresa(int numPessoas) {
        this.capacidade = numPessoas;
        pessoas = new Pessoa[numPessoas];
    }

    public void adiciona(Pessoa p) {
        if(totalPessoas < capacidade) {
            pessoas[this.totalPessoas] = p;
            totalPessoas += 1;
        } else {
            System.out.println("O vetor está cheio!");
        }
    }

    public Pessoa pegaPessoa(int i) {
        if(i < capacidade) {
            return pessoas[i];
        } else {
            return null;
        }
    }

    public int getTotalPessoas() {
        return this.totalPessoas;
    }

}

public class Pessoa {

    protected String nome;
    protected String endereco;

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

    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }

    public String getNome() {
        return this.nome;
    }

    public String getEndereco() {
        return this.endereco;
    }
}

public class Fisica extends Pessoa {

    protected String cpf;
    protected String sexo;

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

    public void setSexo(String sexo) {
        this.sexo = sexo;
    }

    public String getCpf() {
        return this.cpf;
    }

    public String getSexo() {
        return this.sexo;
    }
}

public class Juridica extends Pessoa {

    private String cnpj;
    private String razaoSocial;

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

    public void setRazaoSocial(String razaoSocial) {
        this.razaoSocial = razaoSocial;
    }

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

    public String getRazaoSocial() {
        return this.razaoSocial;
    }
}

public class Funcionario extends Fisica {

    protected String login;
    protected String senha;

    public void setLogin(String login) {
        this.login = login;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    public String getLogin() {
        return this.login;
    }

    public String getSenha() {
        return this.senha;
    }
}

public class Secretaria extends Funcionario {

    private String setor;

    public void setSetor(String setor) {
        this.setor = setor;
    }

    public String getSetor() {
        return this.setor;
    }
}

public class Gerente extends Funcionario {

    protected String setor;

    public void setSetor(String setor) {
        this.setor = setor;
    }

    public String getSetor() {
        return this.setor;
    }
}

public class Tecnico extends Funcionario {

    protected String setor;

    public void setSetor(String setor) {
        this.setor = setor;
    }

    public String getSetor() {
        return this.setor;
    }
}

public class Testa {

    public static void main(String[] args) {

        Empresa empresa = new Empresa(20);
        Pessoa p = new Pessoa();
        Fisica f = new Fisica();
        Juridica j =  new Juridica();
        Funcionario fun = new Funcionario();
        Secretaria sec = new Secretaria();
        Gerente ger = new Gerente();
        Tecnico tec = new Tecnico();

        p.setNome("Rodrigo");
        p.setEndereco("Rua das Coves");
        empresa.adiciona(p);

        f.setNome("Fisica");
        f.setEndereco("Rua das Fisicas");
        f.setCpf("CPF da Fisica");
        f.setSexo("Sexo da Fisica");
        empresa.adiciona(f);

        j.setNome("Juridica");
        j.setEndereco("Rua das Juridicas");
        j.setCnpj("CNPJ das Juridicas");
        j.setRazaoSocial("Razao das Juridicas");
        empresa.adiciona(j);

        fun.setNome("Funcionario");
        fun.setEndereco("Rua dos Funcionarios");
        fun.setCpf("CPF do Funcionario");
        fun.setSexo("Sexo do Funcionario");
        fun.setLogin("Login Funcionario");
        fun.setSenha("Senha Funcionario");
        empresa.adiciona(f);

        sec.setNome("Secretaria");
        sec.setEndereco("Rua da Secretaria");
        sec.setCpf("CPF da Secretaria");
        sec.setSexo("Sexo da Secretaria");
        sec.setLogin("Login Secretaria");
        sec.setSenha("Senha Secretaria");
        sec.setSetor("Secretaria particular");
        empresa.adiciona(sec);

        ger.setNome("Gerente");
        ger.setEndereco("Rua do Gerente");
        ger.setCpf("CPF do Gerente");
        ger.setSexo("Sexo do Gerente");
        ger.setLogin("Login Gerente");
        ger.setSenha("Senha Gerente");
        ger.setSetor("Presidente");
        empresa.adiciona(ger);

        tec.setNome("Tecnico");
        tec.setEndereco("Rua do Tecnico");
        tec.setCpf("CPF do Tecnico");
        tec.setSexo("Sexo do Tecnico");
        tec.setLogin("Login Tecnico");
        tec.setSenha("Senha tecnico");
        tec.setSetor("Tecnico Notebook");
        empresa.adiciona(tec);

        for(int i = 0; i < empresa.getTotalPessoas(); i++) {
            System.out.println(empresa.pegaPessoa(i));
        }
    }
}
enter code here
  • Não entendi a sua dúvida

    gabriel faria de freitas   11 de abr de 2014
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags java ou faça a sua própria pergunta.