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 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?
    • Por ILR master
      Boa tarde, pessoal.
      Espero que todos estejam bem.
       
      Seguinte:
      Tenho a seguinte consulta:
       
      $usuarios= "SELECT * FROM usuarios";
      $query= mysqli_query($conexao, $usuarios) or die ("Usuário não encontrado");
      $usuario = mysqli_fetch_array($query);
       
      Quero pegar apenas o campo 'nome' da tabela 'usuarios' e colocar todos os resultados da seguinte forma:
       
      $nomes = array("Rafael", "João", "Maria", "Pedro", "Patricia", "Camila");
       
      Agradeço desde já.
      Abs
       
       
    • Por Jack Oliveira
      Ola pessoal boa tarde
      estou tentando fazer um texto se mover dentro do input porem nao esta dando resultado que preciso
       
      Este é o codigo 
      <script type="text/javascript"> $(document).ready(function () { var frases = [{ 'elemento': $('input[name=search_string]'), 'frases': ["O que você está procurando?", "Buscar por: Academia, Barbearia, Churrascaria, Decoração, Escola, Farmácia, Gráfica, Imobiliaria, Lanchonete, Mecânica, Odontologia, Pizzaria...", "Faça sua busca por segmentos aqui.", "São mais de 3mil empresas para serem exploradas."] }]; animaInput(frases); }); </script>  
    • Por Rengavitp
      Boa noite pessoal!
       
      Estou fazendo um projeto web com spring boot e é a primeira vez que lido com imagens. Minha idéia é salvar imagens em uma pasta e depois recuperar essa imagem e mostrar, mas o problema que estou enfrentando é o seguinte, seu eu envio para o src do projeto na pasta imagens, eu até consigo acessar as imagens, mas preciso atualizar o projeto na IDE (isso vai acontecer em produção?) eu tentei salvar em uma pasta fora do source do projeto mas ai não consigo acessar. como devo fazer? fiz várias pesquisas, mas nenhuma me ajudou.
       
      Desde já agradeço.
    • Por mateus.andriollo
      Existe uma forma de fazer um IF na select e comparar com Array de dados?
       
      algo como
       
      Select if( in_array(idCliente,'1,2,3,4,5')=true,'Tem','Não') ) as cliente Não consigo usar inner ou where pois esse array é algo q tem varias regras...
       
      Precisava saber se existe uma função assim em MySQL
×

Informação importante

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