C'est une erreur d'accéder à un champ d'un objet qui n'existe pas. Ainsi, l'évaluation de p.x, qui suit une déclaration de p et son initialisation par null, provoque le déclenchement de l'exception NullPointerException :
Point p = null; p.x = 2; // ERREUR -> NullPointerException
Pour éviter cette erreur, il est souvent nécessaire de commencer par faire le test p != null, avant d'accéder à un champ :
if (p != null) { p.x = 2; }