énoncé de l'exercice 3

solution de l'exercice 3 :

On veut rendre un TextField non éditable (l'utilisateur ne peut pas écrire dedans, seul le programme le peut). Comment écrire un tel code ? indication voir setEditable() de la classe de base TextComponent.

une réponse :
La recherche doit d'abord être effectuée dans la classe TextField : y a t-il une méthode setEditable() dans cette classe ? La réponse est non. Aussi on recherche dans la classe de base s'il en existe une. C'est le cas et c'est donc celle là qui sera utilisé (réutilisabilité de l'héritage) et lancée (polymorphisme) pour des objets de la classe TextField.

remarque : il en est de même pour les méthodes setText() et getText() sur des objets de la classe TextField (ou TextArea). En fait ces méthodes sont définies dans la classe de base TextComponent ("factorisation de l'héritage").

Le code à écrire est :
TextField tf;
tf = new TextField();
tf.setEditable(false);

Que signifie extends Applet dans le code Java de la page http://www.ora.com/catalog/javanut/examples/section8/GrayButton.java ?

une réponse :
C'est la syntaxe de l'héritage en Java. La classe GrayButton est une classe dérivée de la classe Applet et les objets de cette classe seront (héritage) considérés aussi comme des applets (objets de la classe Applet).

Que dire de la méthode init() dans cette page par rapport à la méthode init() de la classe Applet ?

une réponse :
Elle spécialise la méthode init() de la classe Applet. Autrement dit lors d'un appel de init() sur un objet de la classe GrayButton, ce sera cette méthode qui sera appelée. En quelque siorte elle "masque de manière polymorphe" la méthode de même nom de la classe de base.

La méthode init() de la classe Applet dont dérive la classe GrayButton sera t-elle lancée ?

une réponse :
Non elle ne sera pas appelée.

Retour à la page d'exercices.