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