Me enganei… Vou postar aqui todo o código, qualquer ajuda é bem vinda. Obrigado!
[code]public class Turma
{
private int codigoTurma;
private int maxAlunos;
private Aluno alunos[];
private Professor professor;
private int totalAlunos = 0;
//construtor
public Turma(int cod, int max, Professor prof)
{
codigoTurma = cod;
maxAlunos = max;
professor = prof;
Aluno alunos[] = new Aluno[totalAlunos];
for(int i=0; i<alunos.length; i++)
{
alunos[i] = new Aluno(0, "");
}
}
//metodos
public boolean inscreveAluno(Aluno alu)
{
boolean retorno = true;
if(totalAlunos>=maxAlunos)
{
retorno = false;
}
else if(totalAlunos < maxAlunos)
{
alunos[totalAlunos] = alu;
totalAlunos++;
retorno = true;
}
return retorno;
}[/code]
1-como vc está usando a sua classe Turma? ela foi instanciada num método main (correto?);
2-pelo que percebi, você tem um atributo chamado totalAlunos que é criado com zero toda vez que você instancia a classe Turma em algum lugar. Sendo assim, salvo engano da minha parte, o teu construtor sempre cria um array de alunos de tamanho 0 (zero);
3-toda vez que você invoca o método inscreveAluno(), teu totalAlunos tem o valor zero e cai no segundo if (a menos que o maxAlunos seja passado negativo no teu construtor);
Dá uma olhada nessas três coisas e me mostra onde você está usando (chamando) o inscreveAluno().
Cara, nem li todos os posts aqui, hehe, mas queria deixar a dica pra vc tentar usar o DEBUG da sua IDE… (Ecplipse? NetBeans?) É uma boa hora!
Ajuda bastante. E NullPointerException é uma das (ou A) excessão mais chata do Java…
rs
Não é só isso uchoaaa, ele ta criando uma instância local do array alunos no construtor, ou seja, o atributo (o array alunos) da classe não foi inicializado.
E troca totalAlunos por max, que teu totalAlunso é zero.
[quote=Migore]Não é só isso uchoaaa, ele ta criando uma instância local do array alunos no construtor, ou seja, o atributo (o array alunos) da classe não foi inicializado.
E troca totalAlunos por max, que teu totalAlunso é zero.