p2 mais la nouvelle valeur est perdue à la sortie de modif(). Il faut donc procéder ainsi : 
static void modif(element p1,element p2) { 
p1.valeur=p2.valeur; 
}
Cette fois c’est le contenu des valeurs dans la zone mémoire référencée qui est affecté, et vous obtenez le résultat 
attendu. 
f. La valeur null 
Il se peut que vous n’ayez pas besoin tout de suite de créer une référence sur un enregistrement, mais que vous 
vouliez éviter d’y accéder par inadvertance. Dans ce cas, au lieu de créer une référence avec new, vous pouvez lui 
affecter une valeur appelée  null. Cette valeur signifie que la variable a été déclarée mais n’a pas d’objet instancié 
(terme  expliqué  dans  le  chapitre  suivant)  :  vous  ne  lui  avez  pas  encore  affecté  d’enregistrement.  Du  coup,  vous 
pouvez déjà tester la variable elle­même avant de tester les champs qu’elle contient. 
Dans  l’exemple  suivant  modifié,  tarticle  contient  toujours  une  variable  de  type  tfabricant.  Mais  elle  ne  recevra  un 
enregistrement que plus tard dans le programme. En attendant, le champ fab reçoit une valeur nulle, signifiant que 
l’article n’a pas encore de fabricant référencé. 
class tfabricant { 
public String ref; 
} 
class tarticle { 
public String ref; 
public tfabricant fab=null; 
} 
 
class chap8_refstruct2 { 
public static void main(String[] args) { 
tarticle article=new tarticle(); 
article.ref="Art001_01"; 
if(article.fab!=null) 
System.out.println(article.fab.ref); 
else 
System.out.println("Pas de fabricant pour cet article"); 
} 
}
- 11 -
© ENI Editions - All rigths reserved - Jonifar lina
173
Précédent

- 173/220

Suivant