Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • 0
laloproces

Java - Programa de teste de Classes Dinâmico (Erro: ArrayIndexOutOfBoundsException)

Pergunta

Boa noite. Segue o texto do método main:

 

/*O sistema basicamente faz é pedir informções para o usuário, pergutando quantas pessoas vai cadastrar,
*qual o nome, telefone, se a pessoa trabalha, pede o cargo e a empresa para no final exibir essas informações na tela.
*/
public static void main(String[] args) {         
        
        Scanner in = new Scanner(System.in);
        
        System.out.println("Quantas pessoas você vai cadastrar? (Somente números)\n");
        int pessoas = (int)in.nextInt();
        String[] nome = new String[pessoas];
        String[] telefone = new String[pessoas];
        String[] profissao = new String[pessoas];
        String[] empresa = new String[pessoas];
        int op = 0;
        
        for(int i=0; i<pessoas; i++) {      
            
            System.out.println("\nDigite o nome do serumaninho:\n");        
            nome[pessoas] = in.toString(); //Tá dando erro aqui, provavelmente por causa da variável dinâmica pessoas
        
            System.out.println("\nDigite o telefone desse serumaninho:\n");
            telefone[pessoas] = in.nextLine();
        
            System.out.println("\nEsse vivente trabalha? (0 para não, 1 para sim)\n");
            op = in.nextInt();
        
            if(op == 1){
                System.out.println("\nDigite a profissão dele:\n");
                profissao[pessoas] = in.nextLine();
                System.out.println("\nDigite o nome da empresa em que ele trabalha:\n");
                empresa[pessoas] = in.nextLine();
            }
        }
                              
        for(int j=0; j<pessoas; j++){
            if(op ==1){
                Pessoa[] p = {new Profissional(nome[j], telefone[j], profissao[j], empresa[j])};
            }
            else{                
                Pessoa[] p2 = {new Pessoa(nome[j], telefone[j])};
            }
        }
        
        for(int h=0; h<pessoas; h++){
            if(op==1){
                Pessoa[] p = {new Profissional(nome[h], telefone[h], profissao[h], empresa[h])};
                System.out.println(Arrays.toString(p));
            }
            else{                
                Pessoa[] p2 = {new Pessoa(nome[h], telefone[h])};
                System.out.println(Arrays.toString(p2));
            }
        }            
    }
//Abaixo estão as classes, que estão em outros arquivos Java.
public class Pessoa {
    
    public String getNome(){
        return nome;
    }
    
    public void setNome(String nome){
        this.nome = nome;
    }
    
    public String getTelefone(){
        return telefone;        
    }
    
    public void setTelefone(String telefone){
        this.telefone = telefone;
    }
    
    private String nome;
    private String telefone;
    
    Pessoa(String nome, String telefone){
        this.nome = nome;
        this.telefone = telefone;
    }
    
    void exibir(){
        System.out.println(getNome()+" :: "+getTelefone());
    }
}

//Abaixo a classe Profissional, derivada da classe Pessoa.
public class Profissional extends Pessoa {
    private String profissao;
    private String empresa;
    
    public String getProfissao(){
        return profissao;
    }
    
    public void setProfissao(String profissao){
        this.profissao = profissao;
    }
    
    public String getEmpresa(){
        return empresa;
    }
    
    public void setEmpresa(String empresa){
        this.empresa = empresa;
    }
    
    Profissional(String nome, String telefone, String profissao, String empresa){
        super(nome, telefone);
        this.profissao = profissao;
        this.empresa = empresa;
    }
    
    @Override
    public void exibir(){
        super.exibir();
        System.out.println("\tTrabalha como "+profissao+"no(a) "+empresa+".");   
    }
}
    

Minha dúvida é: como posso corrigir o problema sem tirar a maneira dinâmica do sistema e se da maneira como fiz não irá gerar outros erros ou poderia fazer de uma maneira mais simples.

Desde já agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

0 respostas a esta questão

Recommended Posts

Até agora não há respostas para essa pergunta


  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Estou escrevendo um Sistema Java Web e quando clico no Botão Salvar, o Java acusa esse erro:

      ERROR: Cannot invoke "Object.toString()" because the return value of "java.util.Map.get(Object)" is null
       
      Já tentei de várias formas resolver esse problema, mas não estou conseguindo.

      Por favor, alguém pode me ajudar identificar a origem e resolver o problema acima ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Estou enfrentando um problema que não consigo entender.

      Após Instalar o MySql versão 8.0.36, funciona corretamente realizando as conexões.

      O problema é:
      ---[ após reiniciar o micro, o MySql não faz as conexões.
      --[ tenta localizar este arquivo, mas não acha: my.ini
       
      Onde localizo ou configuro este arquivo na Pasta MySql ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Por favor, preciso de ajuda em Relação a Instalar o Jasper Reports no Eclipse, pois a opção de Eclipse Marketplace, não encontra para instalar.
       
      Já tentei de todas as formas mas não consegui, alguém conhece alguma rotina explicando este procedimento ?
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amantes da informática.
       
      Saudações.
       
      Estou usando o Eclipse Mars versão 4.5.0  e o 4.5.2, acredito que deva ter versões mais novas. 
      Sou novato em JAVA e estou encontrando alguns problema em Instalação de alguns plugins, como por exemplo:
       
      1) quando tento instalar o JBoss Tools através do Eclipse Marteplace, o Eclipse não o encontra na lista de plugins.
      2) se tento instalar através do Install New Software, abaixa alguns arquivos, mas também não instala o JBoss.
      3) se abro o site e arrasto o download para a área de trabalho do Eclipse, também não instala o JBoss.
       
      Caros amigos, existe outra alguma forma de instalar o JBoss Tools no Eclipse e como seria ?
       
      Grato,
       
      Cesar
       
       
    • Por ILR master
      Pessoal, pergunta bem simples. Abaixo tenho o seguinte código:
       
      <script>
      function alerta()
      {
        if (window.confirm("Você realmente quer sair?")) {
          window.open("sair.html");
      }
      }
      </script>
       
      Funciona perfeitamente, só que está abrindo em outra janela e quero que abra na mesma janela.
       
      Alguém pode me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.