pessoal, olha eu aqui dinovo seguinte:
tenho um metodo que me diz quando eu seleciono uma posição inválida no vetor ele deveria me retorna uma mensagem de ero mas, não esa funcionado.
Quando eu coloco uma posição invalida a saida do metodo é o valor (numero) que dei como posição.
esta e a classe que seleciona aposição
public class TestePegaPosicao {
public static void main(String[] args) {
Vetor lista = new Vetor();
Aluno a1 = new Aluno();
Aluno a2 = new Aluno();
int posicao = 11111113;// esta posição não existe.
a1.setNome("Rafael");
a2.setNome("Paulo");
lista.adicionaFim(a1);
lista.adicionaFim(a2);
lista.pega(posicao);
System.out.println(lista.pega(posicao));
}
}
classe com o "teste" e o retorno
public class Vetor {
private Aluno[] alunos = new Aluno[100];
private int totalDeAlunos = 0;
// Adiciona no fim do vetor
public void adicionaFim (Aluno aluno){
this.garantaEspaco();
this.alunos[this.totalDeAlunos]=aluno;
this.totalDeAlunos++;
}
// entrega total de nomes
public int getTotalDeAlunos() {
return totalDeAlunos;
}
// atribui total de alunos
public void setTotalDeAlunos(int totalDeAlunos) {
this.totalDeAlunos = totalDeAlunos;
}
//entrega nomes
public Aluno[] getAlunos() {
return alunos;
}
//atribiu nomes
public void setAlunos(Aluno[] alunos) {
this.alunos = alunos;
}
//adiciona nome por possição
public void adicioNaPosicao(int posicao, Aluno aluno){
this.garantaEspaco();
if(!this.posicaoValida(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
for(int i = this.totalDeAlunos-1;i>=posicao;i--){
this.alunos[i+1]=this.alunos[i];
}
this.alunos[posicao]=aluno;
this.totalDeAlunos++;
}
//entrega nome por posicao
public Aluno pega(int posicao){
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
return this.alunos[posicao];
}
//remove por posição
public void remove(int posicao){
if(!this.posicaoOcupada(posicao)){
System.out.println(posicao);
throw new IllegalArgumentException("Posição Inválida");
}
for(int i = posicao;i<this.totalDeAlunos;i++){
this.alunos[i]=this.alunos[i+1];
}
this.totalDeAlunos--;
}
//verifica se nome ja esta cadastrado
public boolean contem(Aluno aluno){
for(int i=0;i >< this.getTotalDeAlunos();i++){
if(aluno.equals(this.alunos[i])){
return true;
}
}
return false;
}
//Verifica se a posição esta ocupada
public boolean posicaoOcupada (int posicao){
return posicao >= 0 && posicao < this.tamanho();
}
//verifica se a posicao solicitada e valida
private boolean posicaoValida(int posicao){
return posicao >= 0 && posicao <= this.totalDeAlunos;
}
//tamanho do vetor
public int tamanho(){
return this.getTotalDeAlunos();
}
//dobra o tamanho do vetor, sempre que este estiver cheio
private void garantaEspaco(){
if(this.totalDeAlunos == this.alunos.length){
Aluno[] novoArray = new Aluno[this.alunos.length*2];
for(int i=0;i<this.alunos.length;i++){
novoArray[i]=this.alunos[i];
}
this.alunos=novoArray;
}
}
}
poderiam me dizer pq não esta sendo impressa a mensagem “posição inválida”?>