Pessoal boa tarde, gostaria do auxilio de vc’s mais uma vez é o seguinte:
tenho uma classe que escreve num vetor. esta funcionando mas ta gerando este erro:
neste meu outro topico tem o codigo, quando coloco uma posição válida, ele imprime o valor correto e da este erro, isso acontecem em todos os metodos de teste outro exemplo
publicclassVetor{privateAluno[]alunos=newAluno[100];privateinttotalDeAlunos=0;// Adiciona no fim do vetorpublicvoidadicionaFim(Alunoaluno){this.garantaEspaco();this.alunos[this.totalDeAlunos]=aluno;this.totalDeAlunos++;}// entrega total de nomespublicintgetTotalDeAlunos(){returntotalDeAlunos;}// atribui total de alunospublicvoidsetTotalDeAlunos(inttotalDeAlunos){this.totalDeAlunos=totalDeAlunos;}//entrega nomespublicAluno[]getAlunos(){returnalunos;}//atribiu nomespublicvoidsetAlunos(Aluno[]alunos){this.alunos=alunos;}//adiciona nome por possiçãopublicvoidadicioNaPosicao(intposicao,Alunoaluno){this.garantaEspaco();if(!this.posicaoValida(posicao)){System.out.println(posicao);thrownewIllegalArgumentException("Posição Inválida");}if(!this.posicaoOcupada(posicao)){System.out.println(posicao);thrownewIllegalArgumentException("Posição Inválida");}for(inti=this.totalDeAlunos-1;i>=posicao;i--){this.alunos[i+1]=this.alunos[i];}this.alunos[posicao]=aluno;this.totalDeAlunos++;}//entrega nome por posicaopublicAlunopega(intposicao){if(!this.posicaoOcupada(posicao)){System.out.println(posicao);thrownewIllegalArgumentException("Posição Inválida");}returnthis.alunos[posicao];}//remove por posiçãopublicvoidremove(intposicao){if(!this.posicaoOcupada(posicao)){System.out.println(posicao);thrownewIllegalArgumentException("Posição Inválida");}for(inti=posicao;i<this.totalDeAlunos;i++){this.alunos[i]=this.alunos[i+1];}this.totalDeAlunos--;}//verifica se nome ja esta cadastradopublicbooleancontem(Alunoaluno){for(inti=0;i><this.getTotalDeAlunos();i++){if(aluno.equals(this.alunos[i])){returntrue;}}returnfalse;}//Verifica se a posição esta ocupadapublicbooleanposicaoOcupada(intposicao){returnposicao>=0&&posicao<this.tamanho();}//verifica se a posicao solicitada e validaprivatebooleanposicaoValida(intposicao){returnposicao>=0&&posicao<=this.totalDeAlunos;}//tamanho do vetorpublicinttamanho(){returnthis.getTotalDeAlunos();}//dobra o tamanho do vetor, sempre que este estiver cheioprivatevoidgarantaEspaco(){if(this.totalDeAlunos==this.alunos.length){Aluno[]novoArray=newAluno[this.alunos.length*2];for(inti=0;i<this.alunos.length;i++){novoArray[i]=this.alunos[i];}this.alunos=novoArray;}}}
>
WendersonLP
Olha só, você está comentendo dois erros, um na sua classe e outro no seu teste, porque quendo você está querendo chamar alunos dentro do loop for você está chamando como se o objeto lista você um vetor e não é, existe um vetor dentro da classe lista mais o objeto não é um, o outro erro é que você quendo criou o método getAlunos() você está retornando todo o vetor de Alunos aja que pode ser que nem todas as posições do vetor podem está oculpandas, minha opnião é o seguinto, criar um método que retorne uma String com todos os dados dos alunos ADICIONADOS na lista.
ex:
// retornando uma String com todos os dados dos Alunos adicionadospublicStringgetAlunos(){// verifica se a lista está vaziaif(this.tamanho()==0)return"Lista Vazia";// é um objeto para armazenamento de dados facilita// mais do que ficar concatenando StringsStringBuilderstr=newStringBuilder(String.format("%-30s\n","Nome"));for(intcount=0;count<this.tamanho();count++)str.append(String.format("%-30s\n",alunos[count]));// retornando um StringreturnString.format("%s",str);}
Essa é uma maneira certa de retorna os dados inseridos na lista!
Até!