Ajuda - O que está errado?

Aluno alunos[] = new Aluno[maxAlunos];
public boolean inscreveAluno(Aluno alu)

E o compilador sempre retorna:
java.lang.NullPointerException
at Turma.inscreveAluno(Turma.java:46)

referente a:

alunos[totalAlunos] = alu;

xxxxxxxxxxxxxxxxxxxxxx

Você tem que instanciar cada posição do seu vetor de Aluno, caso contrário nao será possível manipular nenhuma posição desse vetor;

voce pode fazer isso usando um laço for que vai até alunos.length, mais ou menos assim:

for(int i=0; i<alunos.length; i++){
   alunos[i] = new Aluno();
}

espero ter ajudado.
[]`s

Tem certeza que Aluno alu é diferente de null?
Chegou a debugar?

[quote=josiani.lm]Você tem que instanciar cada posição do seu vetor de Aluno, caso contrário nao será possível manipular nenhuma posição desse vetor;

voce pode fazer isso usando um laço for que vai até alunos.length, mais ou menos assim:

for(int i=0; i<alunos.length; i++){
   alunos[i] = new Aluno();
}

espero ter ajudado.
[]`s[/quote]

Era isso mesmo! Muito obrigado a todos que ajudaram!

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]

vamo lá cara… seguinte:

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().

Espero ter ajudado…

até!

adriano iurk

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

[]s

Opa, mas acho que encontrei teu erro…

//...
  private int totalAlunos = 0;  
       
     //construtor  
     public Turma(int cod, int max, Professor prof)  
     {  
         codigoTurma = cod;  
         maxAlunos = max;  
         professor = prof;  
           
         Aluno alunos[] = new Aluno[totalAlunos];  // VC TÁ CRIANDO UM ARRAY COM TAMANHO 0 !
   
         for(int i=0; i<alunos.length; i++)  
         {    
             alunos[i] = new Aluno(0, "");    
         }  
       
     }  

//...

[]s

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.

alunos = new Aluno[max]; 

qual o esforço de se pesquisar sobre vetores e instanciação de classes ?

resumidamente, nullpointer exception - referência a um objeto não criado - null.

[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.

alunos = new Aluno[max]; [/quote]

Sim, claro! =D
Nem tinha percebido…

[quote=Shelson]qual o esforço de se pesquisar sobre vetores e instanciação de classes ?

resumidamente, nullpointer exception - referência a um objeto não criado - null.[/quote]

Exato!