0% ont trouvé ce document utile (0 vote)
49 vues60 pages

Cours POO en Java : Bases et Avancées

Transféré par

alhtdharry7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
49 vues60 pages

Cours POO en Java : Bases et Avancées

Transféré par

alhtdharry7
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Programmation Orientée Objet en Java

Programmation Orientée Objet en


Java

By
Idrissou HEL HADJE SOUNON
Institut National Supérieur de Technologie Industrielle de Lokossa

April 19 2024

1 / 54
Programmation Orientée Objet en Java

Plan du Cours
1. Les bases de Java
2. Classes et objets, principe d’encapsulation
3. Héritage et polymorphisme, abstraction, interfaces
4. Les collections Java
5. Les exceptions
6. Notions d’UML
7. Communication avec une base de donnée SQL en Java
8. Tests Unitaires
9. Interface graphique avec Java Swing
10. Interface graphique avec JavaFX

2 / 54
Programmation Orientée Objet en Java
Introduction

Introduction

Les Bases de Java

classe & Objet


Déclaration d’un objet Java

Encapsulation Java
Exemples

3 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

▶ Qu’est-ce que Java ?


▶ Langage de programmation orienté objet
▶ Développé par Sun Microsystems en 1995
▶ Acquis par Oracle en 2010
▶ Pourquoi apprendre Java ?
▶ Large adoption dans les entreprises
▶ Développement d’applications Web et mobiles,
▶ Utilisation dans les systèmes embarqués, etc.

4 / 54
Programmation Orientée Objet en Java
Introduction

Java POO
Qu’est-ce que la Programmation Orientée Objet ?
Elle consiste à créer des objets contenant à la fois des données
et des méthodes.

Quelques avantages
▶ Plus rapide et plus facile à exécuter;
▶ Plus facile à maintenir, modifier et déboguer;
▶ Possibilité de créer des applications entièrement
réutilisables avec moins de code et un temps de
développement plus court;
▶ Etc.

5 / 54
Programmation Orientée Objet en Java
Les Bases de Java

Introduction

Les Bases de Java

classe & Objet


Déclaration d’un objet Java

Encapsulation Java
Exemples

6 / 54
Programmation Orientée Objet en Java
Les Bases de Java

7 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Les variables
Elles possèdent 3 caractéristiques:
▶ L’identificateur, c’est le
nom par lequel la donnée est désignée;
▶ Le type. Il définit de quel genre
est la donnée contenue dans la variable;
▶ La valeur Si par exemple la donnée est
un nombre, sa valeur pourra être 123.

Ex : int n = 4

8 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Les variables
Elles possèdent 3 caractéristiques:
▶ L’identificateur, c’est le
nom par lequel la donnée est désignée;
▶ Le type. Il définit de quel genre
est la donnée contenue dans la variable;
▶ La valeur Si par exemple la donnée est
un nombre, sa valeur pourra être 123.

Ex : int n = 4

8 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Les variables
Elles possèdent 3 caractéristiques:
▶ L’identificateur, c’est le
nom par lequel la donnée est désignée;
▶ Le type. Il définit de quel genre
est la donnée contenue dans la variable;
▶ La valeur Si par exemple la donnée est
un nombre, sa valeur pourra être 123.

Ex : int n = 4

8 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Déclarations de variables

Une déclaration de variable permet de créer une variable.

En même temps qu’elle est déclarée, une variable peut être


initialisée, c’est-à-dire lui affecter une valeur avant de l’utiliser.

9 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Déclarations de variables

10 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Noms de variables
▶ Le nom peut être constitué uniquement de lettres, de chiffres,
et des deux seuls symboles autorisés: (underscore) et $. Pas
d’espace !
▶ Le premier caractère est nécessairement une lettre ou un
symbole;
▶ Le nom ne doit pas être un mot-clé réservé par le langage
Java;
▶ Les majuscules et les minuscules sont autorisées mais ne sont
pas équivalentes.
Les noms score et Score désignent deux variables différentes.

11 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Conventions en Java pour les noms de variables


Par exemple, on utilisera :

nombreDePoints

plutôt que :

NombreDePoints

ou

nombre de points

12 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Types de variables
Les types de données les plus fréquemment utilisés dans les
déclarations de variables Java sont répertoriés dans ce tableau :

13 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Data type Description Example


byte Un nombre entier : de -128 à 127 102
short Un nombre entier : de -32 768 à 32 767 1250
int Un nombre entier : de 23 1 (-2 147 483 648) à 23 1 − 1 10040
(2 147 483 647)
long Un nombre entier : de 26 3 à 26 3 − 1 ’%’
float Un nombre à virgule flottante : de −3, 40282347x1038 3,1234567
à 3, 40282347x1038 . Une précision d’environ 7 chiffres.
double Un nombre à virgule flottante de : −1.8x10308 à 1234567,1234567
1.8x10308 avec une précision d’environ 15 chiffres.
char Un seul caractère Unicode ’%’
String Tout nombre de caractères Unicode ”my String”
boolean Une valeur logique : soit vrai soit faux vrai

14 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Affectations
C’est une instruction qui permet de changer une valeur à une
variable.
Exemple : nCarre = n * n;
Attention : Ne confondez pas une affectation avec une égalité
mathématique.

14 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Écrire à l’écran

15 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Déclaration de constantes
Pour déclarer de constante, il suffit d’ajouter le mot-clé final
devant la déclaration:
Exemple : final int g = 10;

16 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Les opérateurs arithmétiques


On dispose de 4 opérateurs usuels :
▶ + ( Addition ) :
▶ - ( Subtraction )
▶ * ( Multiplication )
▶ / (Division)

Attention : Exemple :
En Java, une division entière donne 1/2 vaut 0
une réponse entière. 5/2 vaut 2
En revanche, si x ou y n’est pas un mais
entier, la réponse sera un nombre non 1/2.0 vaut bien 0.5
entier.
17 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Les opérateurs logiques de Java

Opérateur logique Équivalent en Java


AND &&
OR ∥
NOT !

18 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Opérateurs relatifs au type int


On dispose aussi des opérateurs += , -= , *= , /= , ++ , - -
Par exemple:
a += 5; est équivalent à : a = a + 5;
b *= a; est équivalent à : b = b * a;
++i; est équivalent à : i = i + 1;
--i; est équivalent à : i = i - 1;

L’opérateur modulo, noté % renvoie le reste de la division


entière.
11 % 4 vaut : 3
19 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Attention :
y = x++ ; signifie affecter la valeur de x à y, puis incrémenter
x de 1.
Cependant,
y = ++x ; signifie incrémenter x de 1, puis affecter cette
nouvelle valeur à y.
L’opérateur de décrémentation peut être utilisé de la même
manière.

20 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Fonctions mathématiques
Java fournit les fonction mathématiques usuelles, ainsi que des
constantes comme Pi.
Exemple :
double perimetre = 2 * 3 * Math.PI
double s = Math.sin(30)

21 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Branchements conditionnels

Elle permet au programme d’évaluer si une certaine condition


est remplie et d’effectuer l’action appropriée en fonction du
résultat de l’évaluation.

L’instruction ”if...else”

22 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

L’instruction if suit donc le schéma:

if (condition) {
Bloc d’instructions
} else {
Bloc d’instructions
}

23 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

Branchements conditionnels

L’instruction ”do...while”

24 / 54
Programmation Orientée Objet en Java
Les Bases de Java
Les variables

L’instruction if suit donc le schéma:

if (condition) {
Bloc d’instructions
} else {
Bloc d’instructions
}

25 / 54
Programmation Orientée Objet en Java
classe & Objet

Introduction

Les Bases de Java

classe & Objet


Déclaration d’un objet Java

Encapsulation Java
Exemples

26 / 54
Programmation Orientée Objet en Java
classe & Objet

classe & Objet


Le concept central de l’approche orientée objet est de diviser
des problèmes complexes en objets plus petits.
Un objet est toute entité qui possède un état et un
comportement. Par exemple, une voiture est un objet. Il a
▶ Etats : ralenti, première vitesse, etc.
▶ Comportements : freinage, accélération, etc.
Avant d’en apprendre davantage sur les objets, parlons d’abord
des classes en Java.

Classe Java
Une classe Java est un modèle ou un plan à partir duquel des
objets sont créés.
27 / 54
Programmation Orientée Objet en Java
classe & Objet

Création d’une classe


Pour créer une classe, on utilise le mot-clé class.

class Voiture {

// etat ou champ
private int engrenage = 5;

// comportement ou methode
public void freinage () {
System . out . println ( " Fo nctionn ement du freinage " ) ;
}
}

28 / 54
Programmation Orientée Objet en Java
classe & Objet

Dans l’exemple ci-dessus, nous avons créé une classe nommée


Voiture. Il contient un champ nommé engrenage et une
méthode nommée freinage().
Ici,Voiture est un prototype. Désormais, nous pouvons créer
n’importe quel nombre de Voiture en utilisant ce prototype. Et
toutes les Voitures partageront les états et les comportements
du prototype.
Ici, des champs (variables) et méthodes représentent
respectivement l’état et le comportement de l’objet.
Les champs sont utilisés pour stocker des données les
méthodes sont utilisées pour effectuer certaines opérations.

29 / 54
Programmation Orientée Objet en Java
classe & Objet

NB: Nous avons utilisé des mots-clés private et public.


Ceux-ci sont connus sous le nom de modificateurs d’accès.

Objet Java
Un objet Java est une instance d’une classe.
Lorsque les objets individuels sont créés, ils héritent de toutes
les variables et méthodes de la classe.
Exemple: Dans l’exemple précédent, Voiture une classe alors
VoitureDeCourse, VoitureDeSport, VoitureDeTourisme, etc.
peuvent être considérés comme des objets de la classe.

30 / 54
Programmation Orientée Objet en Java
classe & Objet

Créer un objet en Java


Pour créer un objet, on utilise le mot-clé new.

Syntaxe
nomDeLaClasse nomObjet = new nomDeLaClasse();

Exemple
// pour la classe Voiture
Voiture VoitureDeCourse = new Voiture();
Voiture VoitureDeSport = new Voiture();

NB: Ici, VoitureDeSport est une instance de la classe Voiture.

31 / 54
Programmation Orientée Objet en Java
classe & Objet
Accéder aux membres d’une classe

Accéder aux membres d’une classe


class Voiture {
// champ de la classe
int engrenage = 5;

// methode de la classe
void freinage () {
...
}
}

// creation d ’ objet
Voiture Voi tureDeS port = new Voiture () ;

// access champ et methode


Voit ureDeSpo rt . engrenage ;
Voit ureDeSpo rt . freinage () ;

32 / 54
Programmation Orientée Objet en Java
classe & Objet
Attributs de classe

Nous utilisons ensuite l’objet pour accéder au champ et à la


méthode de la classe.

Attributs de classe
Les attributs de classe sont des variables au sein d’une classe.

33 / 54
Programmation Orientée Objet en Java
classe & Objet
Les objets Java

Déclaration d’un objet Java


Test objA ;
objA = new Test () ;

Une autre façon de faire

Test objA = new Test () ;

34 / 54
Programmation Orientée Objet en Java
Encapsulation Java

Introduction

Les Bases de Java

classe & Objet


Déclaration d’un objet Java

Encapsulation Java
Exemples

35 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Définition

L’Encapsulation est l’un mécanisme consistant à rassembler les


attributs et méthodes au sein d’une même classe tout en
contrôlant l’accès à ceux-ci.
0.2cm Les niveaux de visibilité des membres de la classe sont
définis par un modificateur ou spécificateur d’accès :
▶ private : seulement les méthodes de la classe elle-même
ont le droit d’accéder à ce membre.
▶ public : il peut être accéder depuis l’extérieure (par une
classe quelconque).
▶ protected : le modificateur protected se comporte comme
private avec moins de restriction: il n’est accessible que
depuis:
▶ la classe elle même,
▶ les classes du paquet auquel appartient cette classe.
▶ et les sous-classes, directes ou indirectes, de cette classe.

36 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Avantages

Avantages:
▶ Conserver les champs et méthodes associés ensemble, ce
qui rend notre code plus propre et facile à lire.
▶ Contrôler les valeurs de nos attributs.

37 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Exemple 1: Accès pour modification depuis l’extérieur d’un champs


class Test {
public int x ;
private int y ;
public void initialise ( int i , int j ) {
x=i;

// acces a l attribut private y depuis l


interieur de // la classe elle meme
y=j;
}
}

38 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Suite de exemple 1
public class TestA {
public static void main ( String args []) {
Test objA = new Test () ;
objA . initialise (1 ,3) ;

// acces depuis une autre classe a une methode


public . Apres appel de initialise () , x vaut 1 et y vaut
3

// acces depuis l exterieur . L attribut x est


public . // la valeur de x devient 2
objA . x =2;

// ne compile pas car y est private


objA . y =3;
}
}

39 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Exemple 2: affichage d’une variable depuis l’extérieur


class Test {
public int x ;
private int y ;
public void initialise ( int i , int j ) {
x=i;
y=j;
}
}

40 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

suite exemple 2
public class TestA {
public static void main ( String args []) {
Test objA = new Test () ;

objA . initialise (1 ,3) ;

// affiche x = 1 car on peut acceder a x depuis


l ’ exterieur : x est attribut public

System . out . println ( " x = " + objA . x ) ;

// ne compile pas car on ne peut pas acceder a y


qui est un attribut private .

System . out . println ( " y = " + objA . y ) ;


}
}

41 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Comment accéder à la valeur d’une variable protégée ?


Considérons la classe etudiant qui a les champs nom et
prenom private.

42 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

class Etudiant {
private String nom , prenom ;
public Etudiant ( String st1 , String st2 ) {
nom = st1 ;
prenom = st2 ;
}
}

public class MethodeStatic {


public static void main ( String [] argv ) {
Etudiant Etu1 = new Etudiant ( " Mohammed " , " Ali " ) ;

// ne compile pas car le champs " nom " est private


System . out . println ( " Nom = " + Etu1 . nom ) ;

// comment faire pour afficher le nom Etu1 ?


}
}

43 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Comment peut on accéder à la valeur d’une variable protégée ?

Pour afficher la valeur de l’attribut nom, on définie un


accesseur (méthode getNom) qui est une méthode permettant
de lire, depuis l’extérieur, le contenu d’une donnée membre
protégée.

Exemple :
class Etudiant {
private String nom , prenom ;
public initialise ( String nom , String Prenom ) {
this . nom = nom ; this . prenom = prenom ;
}
public String getNom () {
return nom ;
}
public String getPrenom () {
return prenom ;
}
} 44 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Suite de l’exemple
public class MethodeStatic {
public static void main ( String [] argv ) {
Etudiant Etu1 = new Etudiant ( " Mohammed " ," Ali " ) ;
Etu1 . initialise ( " Mohammed " ," Ali " ) ;
System . out . println ( " Nom = " + Etu1 . getNom () ) ;
System . out . println ( " Prenom = " + Etu1 . getPrenom () )
;
}
}

45 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Modification depuis l’extérieur du contenu d’un attribut privé


class Etudiant {
private int cne ;
}

public class MethodeStatic {


public static void main ( String [] argv ) {
Etudiant Etu1 = new Etudiant () ;

// Impossible de modifier ici l ’ attribut private


cne
Etu1 . cne =23541654;
}
}

46 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Pour modifier la valeur de l’attribut nom (champs private), on


définie un modificateur (mutateur) qui est une méthode
permettant de modifier le contenu d’une donnée membre
protégée.

47 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Exemple:
class Etudiant {
private int cne ;

public void setCNE ( int cne ) {


this . cne = cne ;
}
}

public class MethodeStatic {


public static void main ( String [] argv ) {
Etudiant Etu1 = new Etudiant () ;

Etu1 . setCNE (23541654) ;


}
}

48 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Autoréférences: emploi de this


Possibilité au sein d’une méthode de désigner explicitement
l’instance courante (l’objet courant): faire référence à l’objet
qui a appelé cette méthode.
class Etudiant {
private String nom , prenom ;
public initialise ( String st1 , String st2 ) {
nom = st1 ;
prenom = st2 ;
}
}

Comme les identificateurs st1 et st2 sont des arguments


muets pour la méthode initialise(), alors on peut les noter nom
et prenom et ceux-ci n’ont aucune relation avec les champs
private nom et prenom.
49 / 54
Programmation Orientée Objet en Java
Encapsulation Java
Méthodes d’accès aux valeurs des variables depuis l’extérieur

Dans ce cas la classe Etudiant peut s’écrire comme suit :


class Etudiant {
private String nom , prenom ;
public initialise ( String nom , String prenom ) {
this . nom = nom ;
this . prenom = prenom ;
}
}

50 / 54

Vous aimerez peut-être aussi