Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Array di oggetti in java

    Buonasera a tutti, sono nuovo di questo forum e vi scrivo per chiedere un aiuto:

    Ho fatto questo programma, utilizzando un array di oggetti, e apparentemente Netbeans non mi da errori, tuttavia quando faccio partire il programma, mi appare il seguente errore:

    Exception in thread "main" java.lang.NullPointerException
    at alunno.Alunno.main(Alunno.java:95)
    Java Result: 1

    il codice di riferimento è:

    codice:
    package alunno;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    
    
    
    
    
    public class Alunno {
      
        public String classe;
        public String nomi;
        public int eta;
        
        
        
        public Alunno(String nomi, int eta, String classe) {
     
           
        this.nomi=nomi;
        this.eta=eta;
        this.classe=classe;
        
            
     
        }
        
           public void Setclasse(String classe) {
            
          this.classe=classe; 
            
            
        }
        
        public String Getclasse() {
            
          return classe;  
            
            
        }
        
        
         public void Seteta(int eta) {
            
             this.eta=eta;
            
            
            
        }
        
         public int Geteta() {
            
            return eta;
            
            
            
        }
         
         public void Setnomi(String nomi) {
            
            this.nomi=nomi;
            
            
            
        }
        
         public String Getnomi() {
            
            return nomi;
            
            
            
        }
         
       
            
                      
      public static void main (String[] args) throws IOException {
        
          InputStreamReader input;
          input = new InputStreamReader(System.in); 
          BufferedReader keyboard;
          keyboard = new BufferedReader(input);
          int numAlunni= 5;
          Alunno[] Classe = new Alunno[numAlunni];  
        
        for (int i=0 ; i<Classe.length; i++){ 
           
         System.out.println("Inserisci il nome del "+ (i+1)+" alunno" ) ;  
          Classe[i].Setnomi(keyboard.readLine());
          System.out.println("Inserisci gli anni del "+ (i+1)+" alunno" ) ;   
          Classe[i].Seteta(Integer.parseInt(keyboard.readLine()));
          System.out.println("Inserisci la classe  del "+ (i+1)+" alunno" ) ; 
          Classe[i].Setclasse(keyboard.readLine());
            
            
            
        }
              
          System.out.println ("Resoconto alunni: ");   
          
          for (int i=0; i<Classe.length ; i++){ 
              
       System.out.println ("\nalunno "+(i+1)+"\nnome =\t"+ Classe[i].Getnomi() +"\neta' alunno =\t"+  Classe[i].Geteta () + "\n");  
              
              
              
          }
            
            
            
     }
    
    
    
    }
    Qualcuno può aiutarmi?
    Ultima modifica di overcustom98; 23-10-2015 a 21:38

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da overcustom98 Visualizza il messaggio
    Qualcuno può aiutarmi?
    Comunissimo problema per chi inizia. Quando fai:

    codice:
          int numAlunni= 5;
          Alunno[] Classe = new Alunno[numAlunni];

    stai solo istanziando un array di tot (5 in questo caso) elementi, che può contenere riferimenti ad oggetti Alunno. Ma gli oggetti Alunno NON vengono istanziati insieme alla istanziazione dell'array! L'array contiene inizialmente tutti valori null.

    Gli oggetti Alunno li devi istanziare tu ed assegnare a Classe[i] per ciascun i, chiaramente prima di poter fare Classe[i].qualcosa


    P.S. diverse denominazioni di variabili/metodi che hai usato non sono particolarmente buone.
    Ultima modifica di andbin; 23-10-2015 a 22:38
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Grazie della risposta lampo, bhe vedi, ho iniziato il java a scuola un mese fa circa, prima avevo programmato solo in C.
    Sto cercando di imparare il più in fretta possibile, quindi mi scuso per eventuali errori o altre atrocità.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.