• Aucun résultat trouvé

4.1.1 D´ efinition d’une classe

N/A
N/A
Protected

Academic year: 2022

Partager "4.1.1 D´ efinition d’une classe"

Copied!
4
0
0

Texte intégral

(1)

Chapitre 4

Programmation orient´ ee objet en Java

Comme nous l’avons d´ej`a dit, le langage Java est un langage orient´e presque pur. Il est seulement hh presque ii pur car il a quand mˆeme des types ´el´ementaires (mˆeme si des classes correspondent ´egalement `a ces types). Puisque ce langage est orient´e objet (presque) pur, les unit´es logiques sont lesclasses.

4.1 Classes et objets en Java

Nous avons vu ce qu’est uneclasse, comment la mettre en place et comment l’utiliser `a propos du langage C++. On conserve la mˆeme syntaxe en Java, `a quelques variantes pr`es.

4.1.1 D´ efinition d’une classe

En Java, il n’y a que des d´efinitions de classe, pas de d´eclaration. La d´efinition d’une classe comprend l’en-tˆeteet le corpsde la classe.

4.1.1.1 En-tˆete d’une classe

Fonction.- L’en-tˆete de classe sert `a donner un nom `a la classe et `a fixer quelques caract´eristiques g´en´erales : sa visibilit´e, la classe m`ere (celle dont elle h´erite) en cas d’h´eritage et une interface en cas d’h´eritage multiple.

Syntaxe.- La syntaxe de la d´efinition est la suivante :

modificateur nom [extends superclass] [implements interfaces]

{

/* corps */

}

o`u le modificateur (ou attribut de visibilit´e) sp´ecifie les conditions dans lesquelles la classe est 51

(2)

52 CHAPITRE 4. PROGRAMMATION ORIENT ´EE OBJET EN JAVA accessible, o`u l’indication ´eventuelle d’une superclasse indique la classe dont elle h´erite et o`u l’indication ´eventuelle d’interfaces correspond `a la mise en place de l’h´eritage multiple en Java.

Les modificateurs de classe.- Les modificateurs possibles sont : -publicpour qu’elle soit accessible par tous ;

-private pour qu’elle ne soit accessible que dans le fichier o`u elle est d´efinie ;

-finalpour qu’elle ne puisse plus ˆetre modifi´ee, c’est-`a-dire red´efinie ; aucune classe ne peut alors h´eriter de cette classe ;

-abstractsi elle est d´efinie dans un autre langage, tel que C++ (il faut bien quelques classes pour commencer) ;

-synchronizeableque nous verrons lorsque nous aborderons le multitˆache.

4.1.1.2 Corps d’une classe

Le corps d’une classe est compos´e demembres. Les membres sont de deux sortes : - leschamps(qui correspondent aux membres donn´ees du C++) sont des variables ; - lesm´ethodes(qui correspondent aux fonctions membres du C++) sont constitu´ees d’ins- tructions.

4.1.1.3 Constructeur

D´efinition 1.- Unconstructeur d’une classe est une m´ethode dont le nom est le nom de cette classe et qui ne poss`ede pas de type de retour.

D´efinition 2.-Leconstructeur par d´efautd’une classe est le constructeur sans argument.

Remarque.- Un constructeur se d´efinit donc comme en C++. Par contre, en Java, il existe toujours un constructeur par d´efaut. Si le concepteur de la classe ne le d´efinit pas explicitement, le compilateur Java lui en attribue un par d´efaut.

Remarque sur le destructeur.- Contrairement au langage C++, il n’y a pas de destructeur en Java. Leramasse-miettes(garbage collectoren anglais) se charge de r´ecup´erer la place dans la m´emoire centrale.

4.1.2 Un exemple de classe

D´efinissons une classe point: // point.java

public class point {

private float x, y;

public point() {

x = y = 0;

}

(3)

4.1. CLASSES ET OBJETS EN JAVA 53 public void initialise(float abs, float ord)

{

x = abs;

y = ord;

}

public void deplace(float dx, float dy) {

x = x + dx;

y = y + dy;

}

public String affiche() {

String s;

s = new String();

s = "Le point est en (" + x + "," + y + ")";

return s;

} }

4.1.3 Les objets en Java

4.1.3.1 Instantiation de classe

Lesobjetssont les ´el´ements des classes.

D´eclaration.- La d´eclaration d’un objet se fait comme pour n’importe quelle variable, la diff´erence

´etant que le type est une classe : type nom ;

Instantiation.- Tout objet doit ˆetre instanti´e avant de pouvoir ˆetre utilis´e, c’est-`a-dire qu’on doit lui appliquer un constructeur. Ceci se fait de la fa¸con suivante :

nom = new type(arguments) ; 4.1.3.2 Un exemple

Utilisons notre classepointdans une applet : // testpoint.java

import java.applet.Applet;

import java.awt.Graphics;

public class testpoint extends Applet {

private point A;

public void paint(Graphics g) {

A = new point();

g.drawString(A.affiche(), 25, 25);

(4)

54 CHAPITRE 4. PROGRAMMATION ORIENT ´EE OBJET EN JAVA A.initialise(2.34f, 5.1f);

g.drawString(A.affiche(), 25, 40);

A.deplace(1.03f, 3.3f);

g.drawString(A.affiche(), 25, 55);

};

}

Remarque.- Il est inutile d’importer la classepointsi elle se trouve dans le mˆeme r´epertoire.

4.2 H´ eritage simple

4.2.1 La superclasse Object

Toutes les classes de Java d´erivent de la classeObject.

4.3 Interfaces 4.4 Surcharge

4.5 Polymorphisme

4.6 Classes abstraites

Références

Documents relatifs

'2- Présente la situation des droits de l'homme au Cameroun et deux institutions qui veillent à leur respect. 3- Donne deux solutions pour limiter les violations des

Vous êtes surveillant de baignade et disposez d’une ligne de bouées de 200 m

Le prix des jeux est fixé à 48 euros pièce et donc la recette de l’entreprise (en milliers d’euros) est donnée

où A > 10 est un nombre donné, aussi grand que l’on veut. Dans un magasin les livres sont vendus initialement 17 € l’un. Le directeur propose une réduction et a établi

Si on augmente de deux centimètres la longueur de l’arête d’un cube, son volume augmente alors de 2

Le terrain de football du village de Florent est un rectangle de dimensions 110 m sur 80 m. Pour s’échauffer, l’entraineur de Florent demande aux joueurs de faire un sprint sur

La pince ci-dessous est la pince de préhension d’un bras manipulateur utilisé pour déplacer des objets d’un poste à l’autre.. Il s’agit d’une pince pneumatique simple effet

Déterminer les coordonnées cartésiennes et polaires de M 2001. On appelle I le milieu