Ciao ragazzi, è da qualche giorno che mi sto barcamenando per capire come assegnare dei valori a delle variabili appartenenti a delle classi che sono dichiarate in un'altra classe. Esempio:
codice:
public class ProvaClasse{
class Punto{
int x;
int y;
}
class Rettangolo{
int altezza;
int base;
Punto posizione;
}
public static void main(String[]args){
Posizione p= new Posizione();
p.x= 3;
p.y= 5;
Rettangolo rett= new Rettangolo();
rett.posizione.x= 5;
System.out.println(rett.posizione.x);
rett.posizione.y= 9;
System.out.println(rett.posizione.y);
}
}
In questo modo non lo dà per giusto, perché dice "NullPointerException:attempt to write to field 'int java".
Mentre assegnando l'istanza "p" a rett.posizione stampa correttamente i valori p.x e p.y:
codice:
public static void main(String[]args){
Posizione p= new Posizione();
p.x= 3;
p.y= 5;
Rettangolo rett= new Rettangolo();
rett.posizione= p;
System.out.println(rett.posizione.x);
System.out.println(rett.posizione.y);
}
Per assegnare i valori bisogna sempre creare un'istanza di tutte le classi usate o c'è un altro metodo per controllare le variabili "x" e "y" direttamente dalla classe "Rettangolo" che contiene la classe "Punto"?