Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [java] classe libro non funzionante help!

    sapete dirmi cosa non va? in fase di esecuzione il compilatore mi dice: nullpointerexception

    class Capitolo{
    public String nome;
    public String[] paragrafi;
    }


    class Libro{
    public Capitolo uno;
    Capitolo due;
    Capitolo tre;
    }


    class ProvaLibro{
    public static void main(String[] args){

    Libro l = new Libro();

    l.uno.nome = "Luca";

    System.out.println(l.uno.nome);

    }

    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    ovviamente cosi funziona ma io non volevo passare per i costruttori, e neanche farli visto che java si crea da solo delle inixialixxaxioni a 0.

    codice:
    class Capitolo{
      String nome;
      String[] paragrafi;
    
      Capitolo(String nome, String[] par){
        this.nome = nome;
        paragrafi = par;
      }
    
    }
    
    
    class Libro{
      Capitolo uno;
      Capitolo due;
      Capitolo tre;
    
      Libro(Capitolo uno, Capitolo due, Capitolo tre){
        this.uno = uno;
        this.due = due;
        this.tre = tre;
      }
    
      void setCapitoloNome(String nome){
        Capitolo c = new Capitolo(nome, null);
    
        uno = c;
     }
    
    }
    
    
    class ProvaLibro{
      public static void main(String[] args){
    
        Libro l = new Libro(null,null,null);
    
    //    l.uno.nome = "Luca";
    
        l.setCapitoloNome("Luca");
        System.out.println(l.uno.nome);
    
      }
    
    }

  3. #3
    Utente di HTML.it L'avatar di Ed_Bunker
    Registrato dal
    Jul 2003
    Messaggi
    1,119

    Re: [java] classe libro non funzionante help!

    Originariamente inviato da Lucked
    sapete dirmi cosa non va? in fase di esecuzione il compilatore mi dice: nullpointerexception

    class Capitolo{
    public String nome;
    public String[] paragrafi;
    }


    class Libro{
    public Capitolo uno;
    Capitolo due;
    Capitolo tre;
    }


    class ProvaLibro{
    public static void main(String[] args){

    Libro l = new Libro();

    l.uno.nome = "Luca";

    System.out.println(l.uno.nome);

    }

    }
    Ti da errore per il semplice fatto che l.uno non e' inizializzato. Ovvero non esiste nell'heap nessun oggetto corrispondente alla variabile l.uno. Prima devi fare l.uno = new Capitolo() e poi allora puoi fare l.uno.nome = "OliverHattonStory"

    Le inizializzazioni vengono fatte mediante i costruttori. In Java i costruttori sono spesso "basilari". Non vengono usati "soltanto" nel caso in cui si voglia realizzare un tipo di dato astratto corrispondente ad un record puro le cui variabili vengano inizializzate esplicitamente e i cui valori (Delle variabili) siano accessibili direttamente (Non tramite metodi osservatori).

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.