555
555
555
correspondant aux objets de son système. Les traitements à effectuer sont programmés dans les
méthodes de ces classes qui peuvent faire appel à des méthodes d’autres classes. En général, on définit
une classe, dite “exécutable”, dont une méthode peut être appelée pour exécuter le programme.
Encapsulation Lors de la conception d’un programme orienté-objet, le programmeur doit identifier les
objets et les données appartenant à chaque objet mais aussi des droits d’accès qu’ont les autres objets
sur ces données. L’encapsulation de données dans un objet permet de cacher ou non leur existence aux
autres objets du programme. Une donnée peut être déclarée en accès : ● public : les autres objets
peuvent accéder à la valeur de cette donnée ainsi que la modifier ; 3 Chapitre 1. Introduction au langage
Java ● privé : les autres objets n’ont pas le droit d’accéder directement à la valeur de cette donnée (ni
de la modifier). En revanche, ils peuvent le faire indirectement par des méthodes de l’objet concerné (si
celles-ci existent en accès public). Les différents droits d’accès utilisables en Java sont détaillés dans la
section ... Méthode constructeur Chaque classe doit définir une ou plusieurs méthodes
particulières appelées des constructeurs. Un constructeur est une méthode invoquée lors de la création
d’un objet. Cette méthode, qui peut être vide, effectue les opérations nécessaires à l’initialisation d’un
objet. Chaque constructeur doit avoir le même nom que la classe où il est défini et n’a aucune valeur de
retour (c’est l’objet créé qui est renvoyé). Dans l’exemple précédent de la classe rectangle, le
constructeur initialise la valeur des données encapsulées : class Rectangle { ... Rectangle(int lon, int lar)
{ this.longueur = lon ; this.largeur = lar ; this.origine_x = 0 ; this.origine_y = 0 ; } ... } Plusieurs
constructeurs peuvent être définis s’ils acceptent des paramètres d’entrée différents. 1.2.2 Objet
Instanciation Un objet est une instance (anglicisme signifiant « cas » ou « exemple ») d’une classe et est
référencé par une variable ayant un état (ou valeur). Pour créer un objet, il est nécessaire de déclarer
une variable dont le type est la classe à instancier, puis de faire appel à un constructeur de cette classe.
L’exemple ci-dessous illustre la création d’un objet de classe Cercle en Java : Cercle mon_rond ;
mon_rond = new Cercle(); L’usage de parenthèses à l’initialisation du vecteur, montre qu’une méthode
est appelée pour l’instanciation. Cette méthode est un constructeur de la classe Cercle. Si le
constructeur appelé nécessite des paramètres d’entrée, ceux-ci doivent être précisés entre ces
parenthèses (comme lors d’un appel classique de méthode). L’instanciation d’un objet de la classe
Rectangle faisant appel au constructeur donné en exemple ci-dessous pourra s’écrire : Rectangle
mon_rectangle = new Rectangle(15,5); ☛ Remarque importante : en Java, la notion de pointeur est
transparente pour le programmeur. Il faut néanmoins savoir que toute variable désignant un objet est
un pointeur. Il s’ensuit alors que le passage d’objets comme paramètres d’une méthode est toujours un
passage par référence. A l’inverse, le passage de variables primitives comme paramètres est toujours un
passage par valeur. 4 1.2. Programmation orientée-objet Accès aux variables et aux méthodes Pour
accéder à une variable associée à un objet, il faut préciser l’objet qui la contient. Le symbole ’.’ sert à
séparer l’identificateur de l’objet de l’identificateur de la variable. Une copie de la longueur d’un
rectangle dans un entier temp s’écrit : int temp = mon_rectangle.longueur ; La même syntaxe est utilisée
pour appeler une méthode d’un objet. Par exemple : mon_rectangle.deplace(10,-3); Pour qu’un tel
appel soit possible, il faut que trois conditions soient remplies : . La variable ou la méthode appelée
existe ! . Une variable désignant l’objet visé existe et soit instanciée. . L’objet, au sein duquel est fait
cet appel, ait le droit d’accéder à la méthode ou à la variable (cf. section ..). Pour référencer
l’objet “courant” (celui dans lequel se situe la ligne de code), le langage Java fournit le mot-clé this.
Celui-ci n’a pas besoin d’être instancié et s’utilise comme une variable désignant l’objet courant. Le mot-
clé this est également utilisé pour faire appel à un constructeur de l’objet courant. Ces deux utilisations
possibles de this sont illustrées dans l’exemple suivant : class Carre { int cote ; int origine_x ; int
origine_y ; Carre(int cote, int x, int y) { this.cote = cote ; this.origine_x = x ; this.origine_y = y ; } Carre(int
cote) { this(cote, 0, 0); } } 5 Chapitre 1. Introduction au langage Java 6 Chapitre 2 Syntaxe du langage Le
langage C a servi de base pour la syntaxe du langage Java : ● le caractère de fin d’une instruction est “ ;”
a = c + c ; ● les commentaires (non traités par le compilateur) se situent entre les symboles “/*” et “*/”
ou commencent par le symbole “//” en se terminant à la fin de la ligne int a ; // ce commentaire tient
sur une ligne int b ; ou /*Ce commentaire nécessite 2 lignes*/ int a ; ● les identificateurs de variables ou
de méthodes acceptent les caractères {a..z}, {A..Z}, , _ ainsi que les caractères {..} s’ils ne sont pas
le premier caractère de l’identificateur. Il faut évidemment que l’identificateur ne soit pas un mot
réservé du langage (comme int ou for). Ex : mon_entier et ok4all sont des identificateurs valides mais
mon-entier et 4all ne son