TUTORIELS 
Introduction aux classes en Java
Squelette des programmes Java, les classes sont parfois confondues avec les objets. Voyons comment les différencier et comprendre les notions d'instances, de membres, et de constructeurs.  (22 janvier 2002)
 


Des classes, nous en avons déjà croisé lors de nos précédents tutoriels. Nous supposions alors les principes de base acquis. Le tutoriel d'aujourd'hui revient justement sur ces fameuses bases ainsi que sur les notions essentielles qui gravitent autour de ces classes.


Un peu de vocabulaire

On peut considérer une classe comme un prototype, ou un modèle abstrait de données. La classe la plus générale se nomme "Object", toutes les classes dérivent de celles-ci (l'héritage sera abordé dans un autre tutoriel).

Lors de l'apprentissage d'un langage objet, plusieurs notions ne tardent pas à faire leur apparition : objet, membres statiques ou non, constructeurs, instances, méthodes...

Ne confondons pas tout, voici quelques explications :

Une classe possède des attributs et des méthodes. Les attributs, encore appelés variables ou membres peuvent être de deux types :

- Les variables de classe
- Les variables d'instance

Exemple :

public class Cercle
{
     static double pi = 3.14

     double x_coordcentre;
     double y_coordcentre;
     double rayon;
}

Par convention la première lettre du nom de la classe est une majuscule.
Dans notre exemple "pi" est une variable de classe. Elle sera commune à tous les objets qui seront issus de cette classe, ils se partageront une copie de cette variable. A l'inverse, toutes les autres variables sont dites "variables d'instance", elles sont propres à chaque objet.
Les variables d'instance sont les paramètres qui caractérisent un objet.

La variable de classe permet de ne pas répercuter dans chaque objet une variable dont on sait dès le départ que sa valeur est commune à tous, elle est introduite par le mot-clef "static".

On note que notre classe "Cercle" est publique. Par défaut une classe ne peut être utilisée que par d'autres classes issues du même package. Le mot-clef "public" rend cette classe accessible à d'autres classes sans tenir compte de son package d'origine.

D'autres mots-clefs existent, entre autres :
- abstract : Spécifie que la classe ne peut pas être instanciée.
- final : Empêche une classe d'être dérivée

Afin de manipuler les variables préalablement définies, nous devons passer par les méthodes. Celles-ci définissent les opérations susceptibles d'être effectuées par la classe.

Si nous voulons créer une méthode capable de calculer le périmètre de notre cercle, on peut écrire :

public class Cercle
{
     static double pi = 3.14

     double x_coordcentre;
     double y_coordcentre;
     double rayon;

     double perimetre()
     {
          return 2*pi*rayon;
     }

}

Nous savons désormais à quoi ressemble une méthode, qu'en est-il du constructeur et à quoi sert-il ?

Le constructeur est une méthode particulière qui permet d'instancier une classe, il ne possède pas de valeur de retour et possède le même nom que la classe dans laquelle il se situe. Le constructeur est appelé automatiquement lors de l'instanciation d'un objet.
Au choix, le constructeur peut, ou pas, comporter des paramètres, exemple : (version sans paramètre) :

public class Cercle
{
     static double pi = 3.14

     double x_coordcentre;
     double y_coordcentre;
     double rayon;

     double perimetre()
     {
          return 2*pi*rayon;
     }

    Cercle ()
    {
         x_coordcentre = 5.0;
         y_coordcentre = 5.0;
         rayon = 3.0;
    }
}

Avec paramètres cela peut donner :

Cercle (double x, double y, double r)
{
     x_coordcentre = x;
     y_coordcentre = y;
     rayon = r;
}

Pour créer notre objet il faut employer le mot-clef "new". Voyons ce que cela donne dans une classe de test :

public class Test
{
     public static void main(String[] args)
     {
          new Cercle();
     }
}

class Cercle
{
     static double pi = 3.14;

     double x_coordcentre;
     double y_coordcentre;
     double rayon;

     double perimetre()
     {
          return 2*pi*rayon;
     }

    Cercle ()
    {
         x_coordcentre = 5.0;
         y_coordcentre = 5.0;
         rayon = 3.0;
    }
}

Cette introduction est terminée, seules une partie des connaissances de base ont été évoquées ici, nous reviendrons plus profondemment sur les méthodes dans un prochain tutoriel.

 
[ Arnaud GadalJDNet
 
Accueil | Haut de page