POO Java

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 34

Principes

fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

1/29
Principes
fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

2/29
Principes
fondamentaux
des réseaux
informatiques
Programmer en Java
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage Environnement
La classe
abstraite et • Le coude source : le fichier .java
l’interface

La classe
• L’exécutable : le fichier .exe
Object
• Compilation : la commande javac
• Exécution : la commande java
• IDE : Eclipse, Netbeans ...

2/29
Principes
fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

3/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Qu’est-ce qu’une classe ?
Introduction

Structure
Une classe est une sorte de type complexe qui nous permet de
d’une classe créer des variables pouvant stocker plusieurs valeurs de
Héritage
plusieurs types. Cette variable est appelé un objet et le fait de
La classe
abstraite et
créer un objet est dit instancier un objet.
l’interface

La classe Caractéristiques
Object
• Il est recommandé d’écrire une classe par fichier .java
• Le premier caractère de l’identifiant d’une classe s’écrit en
majuscule
• Les champs et les méthodes s’écrivent en Camel case
• La surcharge : il est possible d’avoir plusieurs méthodes
qui ont le même nom. À condition qu’elles aient des
signatures différentes.

3/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Premier exemple d’une classe
Introduction
On suppose qu’on voudrait créer un programme Java qui nous
Structure
d’une classe permettra de manipuler les informations de quelques étudiants.
Héritage Les étapes à suivre sont :
La classe
abstraite et
• Créer une classe qui nous permettra de créer des objets
l’interface pouvant stocker ces informations
La classe • Indiquer les champs pour stocker les valeurs
Object
• Implémenter les méthodes pour manipuler ses objets
• Créer une deuxième classe contenant la fonction main()
pour tester la classe
NB 1 : Il est possible de créer les deux classes dans un même
fichier. Mais, il est recommandé de mettre chaque classe du
projet dans un fichier à part.
NB 2 : D’autres éléments à ajouter à la classe qu’on verra à la
suite du cours
4/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction
Premier exemple d’une classe
Structure
d’une classe

Héritage public class Personne {


La classe
int id;
abstraite et String nom;
l’interface
String prenom;
La classe
Object int anneeDeNaissance;

void afficheAge(int annee) {


System.out.println(annee -
this.anneeDeNaissance);
}
}

5/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Premier exemple d’une classe
Introduction

Structure
• Cette classe nous permettra de créer des objets pouvant
d’une classe
stocker l’identifiant, le nom, le prénom et l’année de
Héritage
naissance de chaque personne.
La classe
abstraite et • La méthode afficheAge() nous permettra d’afficher l’age
l’interface

La classe
de chaque personne.
Object • Le mot clé this indique l’objet caché
• Au niveau de java, l’appel à une méthode passe souvent
par un objet. Autrement dit, si on veut appeler une
méthode, on doit commencer par créer un objet de la
même classe et appeler la méthode de la manière suivante
: Classe.méthode(). Par exemple : p.afficheAge()
• Le mot clé this permet à la méthode d’accéder aux champs
de l’objet qu’on a utilisé pour appeler la méthode
Par la suite, il faut penser à une classe de test
6/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Premier exemple d’une classe
Introduction

Structure public class Test {


d’une classe

Héritage
public static void main(String[] args) {
La classe
abstraite et Personne p = new Personne();
l’interface

La classe
Object
p.id = 1;
p.nom = "Saidi";
p.prenom = "Soundous";
p.anneeDeNaissance = 2016;

p.afficheAge(2021);

}
}

7/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction

Structure
d’une classe
Premier exemple d’une classe
Héritage

La classe
• Le mot clé new nous permet d’instancier la classe (créer
abstraite et
l’interface un objet)
La classe • La méthode Personne() s’appelle un constructeur
Object
• On accède aux champs de l’objet p de la manière suivante
: p.champ
• La méthode afficheAge() appelé de cette manière affichera
l’age de p

8/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction

Structure
d’une classe
Visibilité d’un membre d’une classe
Héritage
Au niveau de l’exemple précédent, nous avons omis la visibilité
La classe des membres de la classe Personne. Dans ce cas, les membres
abstraite et
l’interface
auront la visibilité par défaut et seront accessibles au niveau du
La classe package en entier. Sinon, nous avons les visibilités suivantes
Object
aussi :
• public : accessible partout dans le programme
• private : accessible seulement à l’intérieur de la classe
• protected : accessible dans la classe, les classes qui en
hérite et dans tous le package

9/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction

Structure Encapsulation des données


d’une classe
À l’exécution de l’exemple précédent (la classe personne), le
Héritage
programme permet à l’utilisateur d’accéder directement aux
La classe
abstraite et champs de l’objet personne. Cela est déconseillé vu que le
l’interface

La classe
programme ne peut pas assurer l’intégrité des données fournis
Object par l’utilisateur. La recommandation est de déclarer les champs
sensibles avec la visibilité private et d’implémenter des
méthodes qui permettront d’accéder et de modifier ces champs.
Ces méthodes s’appellent les accesseurs. Nous en avons deux :
• Les getters : pour récupérer les valeurs des champs cachés
• Les setters : pour les modifier

10/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi Exemple - Les accesseurs
Introduction

Structure
public class Personne {
d’une classe .
Héritage .
La classe private int anneeDeNaissance;
abstraite et
l’interface

La classe
int getAnneeDeNaissance() {
Object return this.anneeDeNaissance;
}

void setAnneeDeNaissance(int
anneeDeNaissance) {
this.anneeDeNaissance =
anneeDeNaissance;
}
.
.
}
11/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction Exemple - Les accesseurs


Structure
d’une classe
public class Test {
Héritage

La classe
abstraite et
public static void main(String[] args) {
l’interface Personne p = new Personne();
La classe .
Object
.
p.setAnneeDeNaissance(2016);
System.out.println(p.getNom());

p.afficheAge(2021);
}
}

12/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Les constructeurs
Introduction Le constructeur est une méthode particulière qui permet
Structure
d’une classe
d’instancier une classe. Elle se caractérise par :
Héritage
• Dans une classe, si aucun constructeur n’est définit, il y
La classe aura un constructeur par défaut
abstraite et
l’interface
• Son rôle est d’initialiser tous les champs d’un objet par les
La classe
valeurs neutres selon son type.
Object
• Elle n’a pas de retour
• Elle porte le même nom que la classe
• On peut créer autant de constructeurs qu’on veut (à
condition qu’ils aient des signatures différentes)
• À la création du premier constructeur, le constructeur par
défaut n’est plus
• Il est recommandé de créer un constructeur qui remplacera
dans ce cas le constructeur par défaut
13/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi
Exemple - constructeur
Introduction

Structure public class Personne {


d’une classe int id;
Héritage String nom;
La classe String prenom;
abstraite et
l’interface int anneeDeNaissance;
La classe
Object
public Personne(){};
public Personne(int anneeDeNaissance){
this.anneeDeNaissance = anneeDeNaissance;
}
public Personne(String nom, String prenom){
this.nom = nom;
this.prenom = prenom;
}
}

14/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction
Exemple - constructeur
Structure
d’une classe

Héritage public class Test {


La classe
abstraite et public static void main(String[] args) {
l’interface

La classe
Object Personne p = new Personne();
Personne p = new Personne(2000);
Personne p = new
Personne("Sulaiman","Saidi");

}
}

15/29
Principes
fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

16/29
Principes
fondamentaux
des réseaux
informatiques
Héritage
Abdelali Saidi

Introduction Présentation
Structure L’héritage est un concept de la programmation orienté objet
d’une classe
qui permet à une classe d’hériter les caractéristiques d’une
Héritage

La classe
autre classe.
abstraite et
l’interface
Caractéristiques
La classe
Object • En Java, l’héritage multiple n’est pas autorisé
• Tous les membres public et protected sont accessibles dans
les classes dérivés
• Polymorphisme : Redéfinir une méthode de la classe
parente dans la classe dérivée
• Pour empêcher l’héritage d’une fonction, il faut la déclarer
avec le mot clé final

16/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction

Structure
d’une classe
Exemple - héritage
Héritage
public class Etudiant extends Personne {
La classe
abstraite et .
l’interface .
La classe .
Object
}
}

Ainsi, la classe Etudiant héritera les caractéristiques de la classe


Personne. Il ne reste que l’indication des spécificités de la
sous-classe.

17/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction

Structure Exemple - héritage


d’une classe

Héritage
Il reste à :
La classe • Définir les champs et les méthodes spécifiques à cette
abstraite et
l’interface sous-classe
La classe
Object
• Définir les constructeurs
• Il est possible de masquer un champ ou une méthode de la
classe parente. Il suffit d’utiliser le même nom pour le
champ et la même signature pour la méthode.
• À la définition d’un constructeur, il est possible d’appeler
le constructeur de la classe parente avec le mot clé super

18/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction Exemple - héritage


Structure
d’une classe
public class Etudiant extends Personne {
Héritage

La classe
abstraite et
private int cne;
l’interface private String filiere;
La classe
Object
public Etudiant(){};
public Etudiant(int cne, String nom, String
prenom){
super(nom,prenom);
this.cne = cne;
}
... les accesseurs

19/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction
Exemple - héritage (suite)
Structure
d’une classe

Héritage ...
La classe void afficheAge(){
abstraite et System.out.println("L’age de l’etudiant
l’interface
"+this.nom+" "+this.prenom+" est :
La classe
Object "+this.age);
}

void afficheCne(){
System.out.println(this.cne);
}
}

20/29
Principes
fondamentaux
des réseaux
informatiques
Structure d’une classe
Abdelali Saidi

Introduction Exemple - héritage (suite)


Structure
d’une classe
public class Test {
Héritage

La classe
abstraite et public static void main(String[] args) {
l’interface

La classe Personne p = new Personne(2000);


Object
Etudiant e = new Etudiant(2000);

p.afficheAge();
e.afficheAge();

}
}

21/29
Principes
fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

22/29
Principes
fondamentaux
des réseaux
informatiques
La classe abstraite et l’interface
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage Présentation
La classe Une classe abstraite et l’interface sont des classes qui ne sont
abstraite et
l’interface utilisées que si elles sont héritées. Elles peuvent contenir des
La classe méthodes sans implémentation (que la signature) et leurs
Object
utilisation oblige les classes qui les héritent (ou implémentent
quand on parle d’interfaces) de redéfinir toutes leurs méthodes.
Cela a un impact positif lors de la collaboration au niveau d’un
projet Java.

22/29
Principes
fondamentaux
des réseaux
informatiques
La classe abstraite et l’interface
Abdelali Saidi
La classe abstraite
Introduction
Pour déclarer une classe en tant que classe abstraite, il suffit
Structure
d’une classe d’utiliser le mot clé abstract. Exemple :
Héritage

La classe
public abstract class Personne {
abstraite et public abstract void uneMethodeAbstraite(){
l’interface
...
La classe
Object }
..
}

• La classe abstraite ne peut pas être instanciée


• Une méthode abstraite est une méthode sans corps
• Une classe concrète qui hérite une classe abstraite doit
implémenter toutes ses méthodes abstraites

23/29
Principes
fondamentaux
des réseaux
informatiques
La classe abstraite et l’interface
Abdelali Saidi

Introduction
L’interface
Structure
d’une classe
L’interface est utilisée pour représenter des propriétés
Héritage transverses de classes. Autrement dit, elle nous permet d’avoir
La classe une idée sur le fait que telle ou telle classe possède telle ou telle
abstraite et
l’interface propriété.
La classe
Object
Caractéristiques :
• Pas besoin d’indiquer les mots clés public et abstract au
niveau des signatures des méthodes d’une interface
• Une interface peut hériter une autre ou plusieurs
• Une classe peut implémenter une ou plusieurs interfaces
• Une classe concrète doit absolument implémenter toutes
les interfaces qu’elle implémente

24/29
Principes
fondamentaux
des réseaux
informatiques
La classe abstraite et l’interface
Abdelali Saidi
L’interface
Introduction
Pour créer une interface :
Structure
d’une classe
public interface I1{
Héritage
void uneMethode(){};
La classe
abstraite et ..
l’interface
}
La classe
Object
Pour l’implémenter :
public classe Exemple implements I1{
void uneMethode(){
...
}
...
}

25/29
Principes
fondamentaux
des réseaux
informatiques
Plan
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage

La classe
abstraite et 1 Introduction
l’interface
2 Structure d’une classe
La classe
Object 3 Héritage
4 La classe abstraite et l’interface
5 La classe Object

26/29
Principes
fondamentaux
des réseaux
informatiques
La classe Object
Abdelali Saidi

Introduction

Structure
d’une classe

Héritage La classe Object


La classe Cette classe est fondamentale. Toute classe qu’on crée en Java
abstraite et
l’interface hérite cette classe implicitement. Elle possède plusieurs
La classe
Object
méthodes qui sont fréquemment utilisées :
• La méthode toString()
• La méthode clone()
• La méthode equals()

26/29
Principes
fondamentaux
des réseaux
informatiques
La classe Object
Abdelali Saidi
La classe Object
Introduction
• La méthode toString() : permet de représenter un objet
Structure
d’une classe sous forme d’une chaine de caractères
Héritage • Exemple :
La classe
abstraite et
l’interface public String toString() {
La classe
String resultat = super.toString() ;
Object

resultat += "\nID : " + id ;


resultat += "\nNom : " + nom ;
resultat += "\nPrenom : " + prenom ;
resultat += "\nAnnee de naissance : " +
anneeDeNaissance ;

return resultat ;
}

27/29
Principes
fondamentaux
des réseaux
informatiques
La classe Object
Abdelali Saidi La classe Object
Introduction • La méthode clone() : permet de dupliquer un objet. Il faut
Structure
d’une classe que la classe dont on veut cloner les instances, implémente
Héritage l’interface Cloneable pour autoriser le clonage.
La classe • Exemple :
abstraite et
l’interface

La classe public Personne clone(Personne personne) {


Object Personne p = new Personne();
p.id = personne.id;
p.nom = personne.nom;
p.prenom = personne.prenom;
p.anneeDeNaissance =
personne.anneeDeNaissance;

return p;
}

28/29
Principes
fondamentaux
des réseaux
informatiques
La classe Object
Abdelali Saidi

Introduction La classe Object


Structure
d’une classe • La méthode equals() : permet de comparer deux objets et
Héritage retourne un boolean
La classe
abstraite et
• Exemple :
l’interface

La classe public boolean equals(Personne p) {


Object
return
id == p.id &&
nom.equals(p.nom) &&
prenom.equals(p.prenom) &&
anneeDeNaissance == p.anneeDeNaissance
;
}

29/29

Vous aimerez peut-être aussi