Académique Documents
Professionnel Documents
Culture Documents
Chapitre 2 : Classe
marcellin.brou@inphb.ci
2O19-2020
Sommaire
Qu’est ce que la POO
Création de classes et d’objets
Les méthodes
Les modificateurs
Les packages
La généricité
Héritage
Classes abstraites et
interfaces
Les exceptions
Bibliographie
K. M. BROU Langage Java : Classe 2
Sommaire
Objectifs
Savoir créer une classe et
l’utiliser.
Comprendre les mécanisme de
réutilisation d’une classe.
Savoir écrire un programme
utilisant des classes.
Spécialisation
Entier Réel Caractère Lien d’agrégation
Lien de généralisation/spécialisation
MC MC
c1 c2
centre.x 3.45 centre.x 4.50 Variables
2.20 3.56 de classe
centre.y centre.y
MC MC
c1 c2
centre.x 3.45 centre.x 4.50
Variables
centre.y 2.20 centre.y 3.56 de classe
couleur green couleur green
MC MC
c1 c2
centre.x 3.45 centre.x 4.50
Méthode
centre.y 2.20 centre.y 3.56
de classe
couleur yellow couleur yellow
MC MC
c1 c2
centre.x 13.45 centre.x 24.50 Après appel
2.20 33.56 de move()
centre.y centre.y
i i 1
Avant Après
Z n’a pas élé modifier
K. M. BROU Langage Java : Classe 38
III. Les méthodes
Exemple 3 : type String Paramètre formel s : passé par
valeur
Paramètre effectif st :
public class ParValChaine {
public static void modif(String s) { La modification de s n’affecte
s.concat(" Fatou"); pas st
}
Avant Après
st a été modifié
MC MC
c1 c2
centre.x 0 centre.x 0
centre.y 0 centre.y 0
MC MC
c1 c2
centre.x 3.45 centre.x 0
idem
class Point2D {
public double x,y;
}
K. M. BROU Langage Java : Classe 55
IV. Les modificateurs
Exemple : class Cercle{
Point2D centre = new Point2D(0, 0);
import java.awt.Color; double rayon;
Color couleur;
class Point2D { void afficher() {
public double x, y; System.out.println("Rayon=" + rayon) ;
Point2D (double abs, double ord) { System.out.println("centre : x=" +centre.x + " y="+centre.y);
x = abs; System.out.println("Couleur=" + couleur);
y = ord; System.out.println();
} }
public void afficher() { }
System.out.println("Abscisse = " + x); class Modificateur{
System.out.println("Ordonnée = " + y); static public void main (String args[]){
Cercle c1 = new Cercle();
}
c1.centre.x = 3.45;
}
c1.centre.y = 2.20;
classes Cercle et Modificateur c1.couleur = Color.red;
c1.afficher();
peuvent accéder à x et à y car
}
déclarés public. }
K. M. BROU Langage Java : Classe 56
IV. Les modificateurs
Le modificateur private Exemple :
Diamétralement opposé au Dans Modificateur.java,
modificateur public. remplacer public par private.
Forme de protection la plus import java.awt.Color;
restrictive
Limite la visibilité des méthodes et class Point2D {
des variables d’instance à la private double x, y;
Point2D (double abs, double ord) {
classe dans laquelle elles sont
x = abs;
définies.
y = ord;
Les sous-classes ne peuvent }
hériter ni de variables privées, ni public void afficher() {
de méthodes privées. System.out.println("Abscisse = " + x);
System.out.println("Ordonnée = " + y);
}
}
class Accesseur{
static public void main (String args[]){
Point2D p = new Point2D(3.45, 2.20);
System.out.println("Appel du constructeur");
p.afficher();
p.setX(5.25);
p.setY(2.31);
System.out.println("Appel du setter");
p.afficher();
System.out.println("Appel du getteur");
System.out.println("p.x = " + p.getX());
System.out.println("p.y = " + p.getX());
}
}
Remarques :
Il faut préciser dans la variable
d’environnement CLASSPATH MainPackage.java : classe de test
l’ensemble des chemins des Figure : nom du package
racines des packages à importer.
Point2D.java : classe Point2D
Un package par répertoire.
Cercle.java : classe Cercle.java
import java.awt.Color;
class MainPackage{
static public void main (String args[]){
Cercle c1 = new Cercle();
c1.centre.x = 3.45;
c1.centre.y = 2.20;
Si c’est nécessaire ajouter le
c1.rayon = 5.25;
dossier SourceJava dans le
c1.couleur = Color.red;
CLASSPATH.
c1.afficher();
} SET CLASSPATH=D:\SourceJava
}
package Figure;
class Point2D {
public double x, y;
Point2D (double abs, double ord) {
x = abs;
y = ord;
}
public void afficher() {
System.out.println("Abscisse = " + x);
System.out.println("Ordonnée = " + y) ;
}
}
Erreur à la compilation
…
T1 methode (T1 a, T2 b) {
…
}
}
Classe A Superclasse
courrierAdim
Carré
Carré : angles droits et côté
égaux.
Rectangle : angles droits et côté
différents.
Losange : angles pas droits et
côté égaux.
K. M. BROU Langage Java : Classe 85
VII. Héritage
Exemple :
Point centre
Figure Figure
Color couleur
centre
couleur
Point centre
Color couleur
Cercle
rayon
Carre Cercle
côté rayon
class B extends A{
…
}
import java.awt.Color;
Sous-type
B C
Caractérisé par des attributs et
méthodes supplémentaires.
Certaines méthodes peuvent être
redéfinies afin de tenir compte
des spécifiées d’une sous-classe
particulière.
RUN
javac ExceptionStandard2.java
java ExceptionStandard a
erreur, mauvais format de nombre For Input String "a"
exception finalement
Exception in thread "main" java.lang.NumberFormatException: a
at java.lang.Integer.parseInt(Integer.java:435)
at java.lang.Integer.parseInt(Integer.java:476)
at ExceptionStandard.main(ExceptionStandard.java:7)