1
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 1
Hiver 2001
Notes de cours
GEI 442 : STRUCTURES DE DONNÉES ET ALGORITHMES
Chapitre 1
Ahmed KHOUMSI
Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO en JAVA
Ahmed KHOUMSI
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 2
Hiver 2001
Programmation orientée objet (POO)
Objet : cœur de la POO
objet = type de données qui a une structure et un état
État de l ’objet accessible (lecture) et manipulable (écriture) à l ’aide
d ’opérations définies par l ’objet
Quelques opérations particulières :
- créer nouvel objet
- copier un objet dans un autre objet
- tester si deux objets sont identiques
- effectuer des opérations E/S sur un objet
Atomicité : Objet doit être considéré comme un tout; ses parties sont :
- non accessibles directement
- accessibles indirectement par des méthodes fournies par l ’objet
Encapsulation :
- Groupement : - des données
- des opérations s ’appliquant sur ces données
- Cacher les détails d ’implantation
Réutilisation de code : facilitée par atomicité et encapsulation
2
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 3
Hiver 2001
POO (suite)
Héritage : - permet d ’étendre, restreindre ou modifier fonctionnalité d ’un objet
- favorise réutilisation de code
Polymorphisme : permet de référencer objets de différents types à l ’aide
d ’un même identificateur
Objet adéquat est déterminée à l ’aide de l ’opération (méthode + arguments)
qui lui est appliquée
Objet = instance d ’une classe
Appel d ’une méthode d ’un objet : effectué par un passage d ’un message à
un objet
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 4
Hiver 2001
Exemple
Définition d ’une classe
public class Ballon
{
// méthodes
public int volume() { return vol; }
public void gonfle(int x) { if x > 0 vol = vol + x; }
public void degonfle(int x) { if ( (x > 0) && (x <= vol) ) vol = vol - x; }
// donnée
private int vol;
}
Méthodes de l ’objet :
- volume permet de lire
- gonfle et degonfle permettent de modifier
Méthodes accessibles par l ’utilisateur en spécifiant public
État de l ’objet = valeur de la donnée vol
inaccessible directement, en spécifiant private
accessible uniquement en utilisant les méthodes de l ’objet
En général, toutes les données d ’un objet doivent être private
la donnée vol
3
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 5
Hiver 2001
Exemple (suite)
Utilisation de la classe Ballon
public class testBallon
{
public static main()
{
Ballon b = new Ballon();
b.gonfle(10);
System.out.println( “ volume du ballon = ” + b.volume() );
b.degonfle(6);
System.out.println(“ volume du ballon = ” + b.volume() );
// Instruction suivante génère erreur de compilation car vol est private
b.vol = 0;
}
}
Nous reviendrons sur la signification de static
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 6
Hiver 2001
Constructeurs
Constructeur = méthode
- associée à une classe
- exécutée automatiquement lorsqu ’un objet de la classe est créé
- porte le nom de la classe
Il permet d ’effectuer une initialisation automatique d ’un objet lors de sa création
Si aucun constructeur défini :
- champs de base initialisés à 0
- champs de référence initialisés à null
Plusieurs constructeurs peuvent être définis grâce à la surcharge
Exemple : La classe Ballon (voir page 4) peut avoir les deux constructeurs suivants
public Ballon(int x) { vol = x; }
public Ballon( ) { vol =0; }
Création de deux objets b1 et b2 de type Ballon, de volumes 0 et a
Ballon b1 = new Ballon( );
Ballon b2 = new Ballon( a );
4
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 7
Hiver 2001
Mutateurs et accesseurs
Mutateur (mutator)= méthode qui modifie l ’état d ’un objet
Accesseur (accessor)= méthode qui examine, mais ne modifie pas l ’état de l ’objet
Exemple : Classe Ballon
Lesthodes gonfle et degonfle sont des mutateurs
La méthode volume est un accesseur
L ’état est défini par la donnée vol
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 8
Hiver 2001
Méthodes toString et equals
toString retourne un String
- qui contient (une partie de) l ’état de l ’objet sous une forme compréhensible
- qui pourra être imprimé
equals permet de vérifier si deux objets sont identiques, càd
- sont de même type
- sont dans le même état
Exemple : Classe Ballon
public String toString( )
{
return “ volume du ballon = ” + vol;
}
public boolean equals(Object b)
{
if ( !( b instanceof Ballon) )
return false
Ballon b1 = (Ballon) b; // nécessaire car argument b de type Object
return b1.vol == vol;
}
5
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 9
Hiver 2001
Méthodes statiques et main
Méthode statique :
- associée à une classe
- ne nécessite pas création d ’un objet
- spécifiée par le mot-clé static
Exemples :
- la classe Integer contient plusieurs méthodes statiques (voir [2] page 350)
- la classe Math contient plusieurs méthodes statiques (voir [2] page 352)
main : Exemple de la classe Ballon
la commande « java Ballon » lance l ’interpréteur java
qui exécute la méthode main de la classe Ballon
Rappelons que :
- le code source de Ballon est (normalement) dans un fichier Ballon.java
- le code interprété (en j-code) est dans un fichier Ballon.class
Chaque classe peut avoir sa propre méthode main, ce qui rend le test de la classe
plus pratique
Université de Sherbrooke Chapitre 1 : Langage JAVA
Partie 3 : Programmation OO
Département de génie électrique et de génie informatique
GEI 442 : Structures de données et algorithmes Ahmed KHOUMSI 10
Hiver 2001
Packages
Package = ensemble de classes
Permet de regrouper des classes
Visibilité des classes
Deux classes d ’un même package ont moins de restriction de visibilité
entre elles que si elles étaient dans des packages différents
En effet, si aucun des mots-clé public, private, protected n ’est utilisé
pour un membre (donnée ou méthode) d ’une classe, alors il est accessible
par toutes les classes du même package.
Exemples de packages : java.applet, java.awt, java.io, java.lang, java.util
1 / 10 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !