Problema com ArryList (gerando exception na tentativa de add)

Olá amigos, Estou com um problema quando tento add um objeto no meu Arraylist, dá uma execption: “Exception in thread “main” java.lang.NullPointerException”

Nesse programa quero criar um objeto Aluno que tem os atributos nome, idade e peso; e esse objeto vai ser adicionado a um Arraylist turma, e essa lista será gravada em disco. Abaixo segue as 3 classes, e a saida.
Se puderem me ajudar estou meio travado nessa parte.

Obrigado!

Classe Aluno

[code]
package academico;

import java.io.Serializable;
/**
*

  • @author
    */
    public class Aluno implements Serializable{
    private int idade;
    private double peso;
    private String nome;

    /** Creates a new instance of Aluno */
    Aluno ()
    {
    }

         public String getnome(){
         return nome;
     }
         public int getidade(){
         return idade;
     }
         public double getpeso(){
         return peso;
     }  
         
         public void setNome(String nome)
         {
             this.nome = nome; 
         }
         
          public void setIdade(int idade)
         {
             this.idade = idade; 
         }
          
           public void setPeso(double peso)
         {
             this.peso = peso; 
         }
    
         public String toString() //formato de "saida"/"gravacao"
     {
         return (this.nome + " / " + "idade: " + this.idade + "\n" + "Peso: " + this.peso);
     }    
    

}[/code]

Classe Aplicacao “main”

[code]
package academico;
/**
*

  • @author
    */
    public class Aplication {

    public static void main(String[] args)
    {
    int opcao;
    Interface inf = new Interface();
    opcao =inf.mostraMenu();
    for(;:wink:
    {
    opcao = inf.mostraMenu();
    if(opcao==0)
    {
    inf.agradecimento();
    break;
    }
    switch (opcao)
    {
    case 1:
    inf.CriarAluno();
    break;
    case 2:
    inf.excluirAluno();
    break;
    case 3:
    inf.imprimirAluno();
    break;
    case 4:
    inf.imprimirAlunos();
    break;
    case 6:
    inf.gravaObjeto();
    }
    }

    }
    }[/code]

Classe Interface *classe com oroblema do ArrayList
package academico;

[code]
import java.util.Scanner;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
/**
*

  • @author
    */
    public class Interface
    {
    //Interface inf = new Interface();
    Scanner teclado=new Scanner(System.in);
    ArrayList turma = null;

       // Cria o objeto serializado
    

    public void Interface()
    {
    }
    public int mostraMenu()
    {
    int opcao;
    System.out.println("########## MENU Sitema ########## \n");
    System.out.println(“Digite 0 para sair do Sistema.”);
    System.out.println(“Digite 1 para incluir aluno na turma.”);
    System.out.println(“Digite 2 para excluir aluno na turma.”);
    System.out.println(“Digite 3 para imprimir aluno.”);
    System.out.println(“Digite 4 para imprimir alunos.”);
    System.out.println(“Digite 5 para salvar em arquivo.”);
    System.out.println("Digite 6 para importar alunos.\n\n########## MENU Sitema ########## \n\nOpção: ");
    opcao=teclado.nextInt();
    return opcao;
    }
    public void agradecimento()
    {
    System.out.println(“Obrigado por você usar este sistema!”);
    }

public Aluno CriarAluno()
{
Aluno aluno = new Aluno();
String tempNome;
int tempIdade;
double tempPeso;

System.out.println("Digite nome do aluno: ");
aluno.setNome(tempNome=teclado.next());
System.out.println("Digite Idade do aluno: ");
aluno.setIdade(tempIdade=teclado.nextInt());
System.out.println("Digite Peso do aluno: ");
aluno.setPeso(tempPeso=teclado.nextDouble());
turma.add(aluno); //erro!!!

return (aluno);

}

public void excluirAluno()
{

}

public void imprimirAluno()
{

}

public void imprimirAlunos()
{

}
public void gravaObjeto()
{
try
{
//Gera o arquivo para armazenar o objeto
FileOutputStream arquivoGrav =new FileOutputStream("./saida.dat");
//Classe responsavel por inserir os objetos
ObjectOutputStream objGravar = new ObjectOutputStream(arquivoGrav);
//Grava o objeto cliente no arquivo
objGravar.writeObject(turma);
objGravar.flush();
objGravar.close();
arquivoGrav.flush();
arquivoGrav.close();
System.out.println(“Objeto gravado com sucesso!”);
}

    catch (IOException erro)
    {
           erro.printStackTrace( );
    }
   
    
    System.out.println("Recuperando objeto: ");
    try
    {
        //Carrega o arquivo
        FileInputStream arquivoLeitura = new FileInputStream("./saida.dat");
        //Classe responsavel por recuperar os objetos do arquivo
        ObjectInputStream objLeitura =new ObjectInputStream(arquivoLeitura);
        System.out.println(objLeitura.readObject());
        objLeitura.close();
        arquivoLeitura.close();
    }
    catch( Exception e ){
            e.printStackTrace( );
    }

}
}[/code]

Agora a saida

Tenta instanciar turma com um ArrayList antes de usá-lo.

na linha 16, turma foi declarado e ainda esta como null:

ArrayList turma = null;

deveria estar

ArrayList turma = new ArrayList();

Lembre-se: sempre que tomar NullPointerException fique contente, porque é o erro mais facil de se corrigir, ele acessou uma referencia que nao se referenciava para objeto algum. Recomendo voce ler um pouco mais sobre referencias e objetos nesse comeco, pra afixar os conhecimentos.

Eu tentei instanciar

ArrayList turma=new Arraylist

Seria isso?
Mas o netbeans dá erro e as sugestões são criar uma class ArryList no pacote Academico e comentar a linha

Opa… vou ler sim…

Obrigado

[quote=ffiorim]Eu tentei instanciar

ArrayList turma=new Arraylist

Seria isso?
Mas o netbeans dá erro e as sugestões são criar uma class ArryList no pacote Academico e comentar a linha[/quote]

List turma = new ArrayList();

Lembre-se de importar os pacotes deles.

Bruno, adicionei na classe Interface:

ArrayList turma=new Arraylist();

Mas a IDE (netbeans) diz erro na linha e sugere “criar class ArrayList”, não consigo enxergar porque do erro, a declaraçãoe está certa acho.

Porque você sugeriu

List turma=new Arraylist();

Esse List é lista?

Obrigado

[quote=ffiorim]Bruno, adicionei na classe Interface:

ArrayList turma=new Arraylist();

Mas a IDE (netbeans) diz erro na linha e sugere “criar class ArrayList”, não consigo enxergar porque do erro, a declaraçãoe está certa acho.[/quote]

P/ facilitar:

import java.util.*