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.
|