POO-Java - Séance 2
POO-Java - Séance 2
POO-Java - Séance 2
Objet-Java
Pr. Fatima MOURCHID
2
Classe
Classe
Ensemble de données et de fonctions regroupées dans une même entité
Description abstraite d'un objet
Instancier une classe consiste à créer un objet sur son modèle
3
Classe
4
Classe
Modificateur Rôle
public La classe est accessible partout
private La classe n'est accessible qu'à partir du fichier où elle est définie
final • La classe ne peut pas être modifiée, sa redéfinition grâce à l'héritage
est interdite
• Les classes déclarées final ne peuvent donc pas avoir de classes filles
abstract • la classe contient une ou des méthodes abstraites, qui n'ont pas de
définition explicite
• Une classe déclarée abstract ne peut pas être instanciée: il faut définir
une classe qui hérite de cette classe et qui implémente les méthodes
nécessaires pour ne plus être abstraite
5
Attributs
6
Attributs
Modificateur Rôle
public Une variable déclarée public est visible par tous les autres objets
private C'est le niveau de protection le plus fort, les composants ne sont
visibles qu'à l'intérieur de la classe
static Définir une variable de classe qui est partagée entre toutes les
instances d'une même classe
protected Si une variable est déclarée protected , seules les méthodes
présentes dans le même package que cette classe ou ses sous
classes pourront y accéder
final Rendre entité non modifiable une fois qu'elle est déclarée pour
une méthode ou une classe et initialisée pour une variable (constant)
7
Attributs
Types de variables
Variables d'instances : ce sont elles qui définiront les caractéristiques de l’objet
(attributs). Elles sont déclarées private
Variables de classes : sont communes à toutes les instances de la classe. Elles sont
déclarées static
Variables locales : ce sont des variables utilisées pour manipuler l’objet
8
Méthodes
Méthodes
Fonctions qui implémentent les traitements de la classe
Déclaration
modificateurs type_retourné nom_méthode ( arg1, ... ) { ...}
9
Méthodes
Modificateur Rôle
public La méthode est accessible aux méthodes des autres classes
private L'usage de la méthode est réservé aux autres méthodes de la même classe
protected La méthode ne peut être invoquée que par des méthodes de la classe ou
de ses sous classes
final La méthode ne peut être modifiée (redéfinition lors de l'héritage est
interdite)
abstract La méthode doit être redéfinie par des méthodes complètes dans les sous
classes
static La méthode appartient simultanément à tous les objets de la classe
10
Méthodes
11
Méthodes
Surcharge de méthodes
Permet de définir plusieurs fois une même méthode avec des arguments différents
Méthode est surchargée lorsqu'elle exécute des actions différentes selon le type
et le nombre de paramètres transmis
Redéfinition de méthodes
Permet de fournir une implémentation spécifique de la méthode qui est déjà
fournie par sa super classe, tout en gardant la même signature avec la possibilité
de changer le modificateur
12
Méthodes
class afficher{
public void afficherValeur (int i )
System.out.println(" nombre entier = " + i);
}
public void afficherValeur (float f )
System.out.println(" nombre flottant = " + f);
}
}
13
Méthodes
class A {
void afficher()
Résultat:
{ System.out.println("La méthode afficher() de la classe mère A."); }
void afficher()
{ A a = new A();
a.afficher();
A b = new B();
b.afficher(); }
14
Instanciation de la classe
Instanciation de la classe
Classe est la description d'un objet
Objet est une instance d'une classe
Pour chaque instance d'une classe, le code est le même, seules les données sont
différentes à chaque objet
Opérateur new se charge de créer une instance de la classe et de l'associer à la
variable
Objet This permet de référencer dans une méthode, l'instance de l'objet en cours
d'utilisation
15
Instanciation de la classe
16
Constructeurs
17
Constructeurs
18
Constructeurs
Constructeur paramétrique
Public class Personne{
// déclarer les attributs
String nom ; String prenom ; int age ; String ville;
// Constructeur paramétrique
public Personne(String nom){
This.nom = nom ;
}
public Personne(String nom, String prenom , int age , String ville){
This.nom = nom ; this.prenom = prenom ; this.age = age ; this.ville = ville;
}
}
19
Constructeurs
Constructeur de recopie
Public class Personne
String nom;
String prenom ;
Int age ;
String ville ;
public Personne( Personne p) {// Constructeur de recopie
This.nom = p.nom ;
This.prenom = p.prenom ;
This.age = p.age ;
This.ville = p.ville ;
}
}
20
Encapsulation
Encapsulation
Regroupement dans une même entité appelée objet des données et des
traitements On ne peut atteindre les attributs d’un objet que par l’intermédiaire
de ses traitements appelés aussi méthodes ou services
Accesseurs et mutateurs: un accesseur est une méthode qui va permettre
d'accéder aux variables des objets en lecture et un mutateur, en écriture
On parle de Getters et de Setters
Getters sont du même type que la variable qu'ils doivent retourner
Setters sont, par contre, de type void ces méthodes ne retournent aucune valeur,
elles se contentent de les mettre à jour
21
Encapsulation
22
Encapsulation
23
Packages
24
Packages
Packages de base
Classes fournies par Java SE, implémentent des données et traitements génériques
utilisables par un grand nombre d’applications
Ces classes forment l’API (Application Programmer Interface) du langage Java
Documentation de l’API java
http://docs.oracle.com/javase/8/docs/api/
25
Packages
Package Description
java.awt Classes graphiques et de gestion d’interfaces
javax.swing Autres classes graphiques
java.net Classes de gestion réseau
java.io Gestion des entrées/sorties
java.lang Classes de base (importé par défaut)
java.util Classes utilitaires
26
Packages
27
Cycle de vie d’un objet
28
Exercices
Exercice 1:
Ecrire une classe Livre avec les attributs suivants: titre, auteur, prix, annee
La classe Livre doit disposer des constructeurs suivants : Livre(), Livre(titre), Livre(titre,
auteur), Livre(titre, auteur, prix), Livre(titre, auteur,prix, annee), Livre(Livre)
La classe Livre doit contenir des accesseurs et mutateurs pour les différents attributs
La classe livre doit aussi contenir une méthode afficher() pour afficher les attributs des
livres
Méthode typeLivre() qui va prendre les valeurs
1 :si prix <100
2: si le 100<=prix< =500
3: si 500<prix
29
Exercices
Exercice 2:
Définir une classe Salarié avec ses données membres et deux méthodes
matricule, nom, prénom, salaire, département
Une méthode membre qui renvoie le calcul du salaire annuel (salaire *12) :
CalculSalaire()
Une méthode d’affichage des informations: Affichage()
Définir une classe TestSalarie pour tester la classe Salaire
Créer un objet S de Type Salarié avec un salaire=10000
Changer le salaire de S en 12000
Afficher le nom du salarié de référence S
30
Exercices
Exercice 3:
Définir une classe Ville avec les attributs : nom, nombre d'habitants et pays
Une méthode afficher() pour afficher les informations sur une ville donnée
Une méthode catégorie() qui renvoie un char:
‘A’: si le nombre d’habitants < 10000
‘B’: si le nombre d’habitants entre 10000 et 1000000
‘C’: si le nombre d’habitants > 1000000
Classe TestVille pour tester la classe ville, changer le nombre d’habitants
d’une ville V, Afficher le pays de la Ville V
31
Documentation JDK 19:
https://docs.oracle.com/en/java/javase/19/index
Bibliographie .html
32