class Point { double x, y; // ... }
Les champs sont d'abord initialisés à la valeur nulle de
leur type. Ces valeurs nulles sont 0 pour les types numériques,
false pour le type boolean, '\u0000'
pour le
type char, et null pour les types référencés (tableaux
et classes).
On accède à un champ d'une instance en suffixant le nom d'un objet par le nom du champ ; par exemple, on accède aux champs x et y du point p au moyen des expressions p.x et p.y. 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.