Galera...essa dúvida é BEM simples, mas não to conseguindo resolver!
Isso é o que o método deve fazer:
boolean ehPossivelColocarNestaSala(Estudante[] estudantes) este método deve retornar true caso seja possível adicionar na sala atual todos os estudantes passados como parâmetro no arranjo estudantes. As regras de quais estudantes podem ser adicionados encontram-se nas classes Sala e SalaEspecial. Este método não insere nenhum estudante, apenas verifica se seria possível adicionar esses estudantes a sala atual.
Pra adicionar um estudante na sala normal, os tipos dos alunos que estão na sala devem ser iguais os tipos dos alunos que estejam querendo entrar na sala. Em uma sala especial, o tipo de um aluno que já esteja na sala, não pode implicar com um tipo de aluno que está querendo entrar.
Isso foi o que eu fiz, porém está retornando true quando deveria retornar false.
//Classe Sala
public boolean ehPossivelColocarNestaSala(Estudante[] estudantes) {
if (estaLotada() && estudantes.length > (numeroMaximoDeEstudantes - numeroAtualDeEstudantes))
return false;
else if (numeroAtualDeEstudantes == 0)
return true;
else {
boolean verifica = true;
for (int i = 0; i < estudantes.length && verifica; i++) {
if (estudantes[i].retornaTipoDoEstudante() != this.estudantes[0].retornaTipoDoEstudante())
verifica = false;
}
return verifica
}
}
//Classe Escola
public boolean verificaSeEhPossivelAdicionarConjuntoDeEstudantesASala (int posicaoNoArranjo, Estudante[] estudantes) {
if (posicaoNoArranjo > 0 || posicaoNoArranjo < salas.length || salas[posicaoNoArranjo] != null || salas[posicaoNoArranjo].ehPossivelColocarNestaSala(estudantes))
return true;
else
return false;
}
Isso é o teste que está dando errado:
Estudante[] conjunto = new Estudante[2];
conjunto[0] = new EstudanteRegular();
conjunto[1] = new EstudanteDedicado();
System.out.println("14. Resposta esperada: 'false':\t" + minhaEscola.verificaSeEhPossivelAdicionarConjuntoDeEstudantesASala(0, conjunto));
Não consigo achar o erro! Pq está retornando true quando deveria estar retornando false? As classes dos diferentes tipos de estudantes está correta!