1. Toutes les déclarations de classe commence par le mot réservé "class" suivi du nom de la classe. La définition complète
de la classe (le corps) se trouve entre accolades.
2. Dans la suite logique, nous définissons les attributs avec leurs noms précédés de leurs types. En Java, toutes les
instructions doivent être ponctuées par le ";". Dans cet exemple, l'attribut couleur est de type Color, l'attribut calibre est de
type entier (int). Vous remarquez qu'en Java, l'interprétation des instructions s'effectue en sens inverse (comme en C++).
3. Cette partie montre la définition de la méthode freiner. Une méthode est reconnaissable par l'utilisation obligatoire de
parenthèses qui éventuellement indiquent le nombre d'arguments passés à la méthode. Une méthode peut renvoyer une
valeur. Il faut alors indiquer son type. Dans le cas contraire, il est impératif de préciser que la méthode ne renvoie pas de
valeur et il faut placer le mot réservé "void". Une méthode doit toujours être définie, vous précisez alors toutes les
instructions nécessaires à l'intérieur du corps de celle-ci (entre les accolades).
4. Nous ne pouvons rien écrire en dehors des classes, nous avons donc construit notre programme principal à l'intérieur
d'une classe. C'est obligatoire. Nous venons de le voir, pour exécuter des instructions, il faut passer par une méthode.
5. Déclaration des objets (variables) mercédes et clio issus de la classe Voiture (type). En java, il est possible d'utiliser les
lettres accentuées.
Attention : C'est juste une déclaration, les objets ne sont pas encore créés. (différent du C++)
6. Création (construction) de l'objet mercédes. On utilise impérativement l'opérateur new suivi du nom de la classe
(constructeur) suivi des parenthèses avec éventuellement à l'intérieur de ces dernières les paramètres requis. A la
construction, vous avez un emplacement mémoire qui est réservé pour tout l'objet avec une capacité qui correspond à
l'ensemble des attributs de la classe.
7. Une fois que l'objet est créé, il est possible d'accéder aux attributs ou au méthodes (si cela est permis) par l'utilisation du
qualificateur ".".
8. Les objets pomme1 et pomme2 sont créés au moment de la déclaration.
Les Paquetages
En Java, un paquetage est une manière de regrouper des classes apparentées. Les paquetages permettent de ne rendre des groupes de classes disponibles que
quand ils sont nécessaires, et ils éliminent les risques de conflits entre des noms de classes communs à des groupes de classes différents. (bien souvent, un
paquetage correspond physiquement à un répertoire).
Les bibliothèques de classes Java sont contenues dans un paquetage appelé java. Les classes du paquetage java offrent la garantie d'être disponibles dans toutes
les implémentations de Java. Le paquetage java contient des paquetages définissant des sous-ensembles spécifiques des fonctionnalités du langage Java, telles
que les fonctions standards, le système de gestion de fichiers, les fonctions multimédia et quantité d'autres choses.
Utilisation d'une classe d'un paquetage
Lorsque, dans un programme, vous faites référence à une classe, le compilateur la recherche dans le paquetage par
défaut ( java.lang - fonctions de base du langage ). Pour utiliser une classe appartenant à un autre paquetage, il est
nécessaire de fournir l'information correspondante au compilateur. Pour ce faire, vous pouvez :
1. citer le nom du paquetage avec le nom de la classe,
2. utiliser une instruction import en y citant soit une classe particulière d'un paquetage, soit tout un paquetage.
En citant le nom de la classe
Pour faire référence à une classe au sein d'un package, vous devez lister tous les
paquetages contenant la classe, en les faisant suivre du nom de la classe et en séparant
les différents éléments à l'aide d'un point (
.
). Considérons, par exemple, la classe Color.
Elle est contenue dans le paquetages awt, lequel est contenu dans le paquetage java.
Pour faire référence à la classe Color dans vos programmes, vous pouvez donc utiliser la
notation java.awt.Color.
En important une classe
L'instruction import vous permet de citer le nom (complet) d'une ou plusieurs classes, comme par exemple,
import java.awt.Color; A partir de là, vous pourrez utiliser la classe Color sans avoir à mentionner le nom de
paquetage, comme si elle appartenaient au paquetage par défaut.
En important un paquetage
La démarche précédente s'avère elle aussi fastidieuse dès qu'un certain nombre de classes d'un même paquetage sont concernées. Avec :
import java.awt.*; vous pourrez ensuite utiliser toutes les classes du paquetage awt issu du paquetage java en omettant le nom des
paquetages correspondant.
Pour en savoir plus sur les paquetages
Encapsulation
L'encapsulation est le principe qui permet de regrouper les attributs et méthodes au sein d'une classe. Cette notion est aussi associée au système de protection
qui permet de contrôler la visibilité d'une variable ou d'une méthode. En d'autres termes, cela signifie que chaque fois que vous définissez un membre d'une classe
(attribut ou méthode), vous devez indiquer les droits d'accès quant à l'utilisation de ce membre.
Dans cette optique, Java propose quatre niveaux de protection : public,private,protected et package. Sachez que les trois
premières étiquettes de protection correspondent à des mots clés qui sont utilisés au début de la déclaration d'un attribut ou
d'une méthode. Le niveau de protection package est associé à un attribut ou une méthode quand aucun des trois mots clés
(public,private ou protected) n'a été indiqué.
Ce mécanisme d'encapsulation permet surtout de protéger l'objet de toute malveillance externe. Pour cela, la plupart du
temps, il faut interdire l'accès direct aux attributs et passer par les méthodes qui modifient indirectement (éventuellement) les
attributs. Par exemple : si l'on désire changer la couleur d'une voiture, cela ne se fait pas par enchantement, il est nécessaire
de passer par tout un processus (décaper, poncer, passer plusieurs couches, etc...), et dans ce cas de figure l'attribut couleur
ne doit pas être accessible directement.
Mot clé public Toutes les attributs ou méthodes d'une classe définies avec le mot clé public sont utilisables par tous les objets. Il s'agit du niveau le plus bas de
protection. Ce type de protection est employé pour indiquer que vous pouvez utiliser sans contrainte les attributs et méthodes d'une classe.
Mot clé private Tous les membres d'une classe définis avec le mot clé private sont utilisables uniquement par les méthodes de la classe. Cette étiquette de
protection constitue le niveau le plus fort de protection. Sachez que les variables appartenant à une classe sont généralement déclarées comme
privées.
Mot clé protected Tous les membres d'une classe définis avec le mot clé protected sont utilisables uniquement par les méthodes de la classe, par les méthodes des
classes dérivées et par les méthodes des classes appartenant au même package. Cette technique de protection est fortement associée à la notion
d'héritage (voir ultérieurement).