0% ont trouvé ce document utile (0 vote)
5 vues40 pages

Java Chapitre 3

Ce document présente les concepts fondamentaux de la programmation orientée objet en Java, en se concentrant sur l'encapsulation, la structure des classes, et l'utilisation de getters et setters. Il aborde également les packages en Java et les attributs et méthodes de classe, en expliquant comment déclarer et utiliser des variables et méthodes statiques. Enfin, un exercice pratique est proposé pour appliquer ces concepts à la création d'une classe de gestion de compte bancaire.

Transféré par

radiy0195
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)
5 vues40 pages

Java Chapitre 3

Ce document présente les concepts fondamentaux de la programmation orientée objet en Java, en se concentrant sur l'encapsulation, la structure des classes, et l'utilisation de getters et setters. Il aborde également les packages en Java et les attributs et méthodes de classe, en expliquant comment déclarer et utiliser des variables et méthodes statiques. Enfin, un exercice pratique est proposé pour appliquer ces concepts à la création d'une classe de gestion de compte bancaire.

Transféré par

radiy0195
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

Université Abdelmalek Essaadi

Faculté des Sciences et Techniques d’Al-Hoceima


Département de Mathématiques et Informatique
Filière : LST-MI – S6

Chapitre 3 : Encapsulation en Java

Langage Java FSTH


Plan :

 Structure d’un programme Java


 Encapsulation
 Structure des classes (getters et setters)
 Packages en Java
 Attributs et méthodes de classe (attributs et
méthodes statiques)

Langage Java 2 FSTH


Structure d’un programme Java
Structure d’un programme Java
Méthode principale et classe exécutable

 Un programme écrit en Java est constitué d’un ensemble de classes représentant


les objets manipulés et les traitements associés.

 L’exécution d’un programme Java commence par l’exécution de la classe qui


implémente la méthode principale main() :
public static void main(String[] args) ;

 La classe implémentant la méthode main() est appelée classe exécutable ou


classe principale.

 Exemple :

Langage Java 4 FSTH


Structure d’un programme Java
Fonction main()

 Syntaxe :
public static void main(String[] args) ;

🞑 static : mot clé permettant d'appeler la fonction sans avoir besoin


d'instancier la classe (main est une méthode de classe).
🞑 args : tableau de chaînes de caractères (string) qui contient des valeurs
précisées à l’exécution du programme s’il est exécuté par ligne de commande.

 Exemple :
 Si la classe « HelloWorld » avait été exécutée par la ligne de commande : java
HelloWorld 17 mars 2018
Le tableau args contiendra 3
éléments dont les valeurs sont
“17”, “mars” et “2018”.

Langage Java 5 FSTH


Structure d’un programme Java
Classe exécutable
 En général, un programme Java contient plusieurs classes.
 La classe exécutable ne sert souvent qu’à instancier les objets.
 Exemple : La classe exécutable RectangleMain crée un objet de la classe
Rectangle et affiche sa surface :

Langage Java 6 FSTH


Structure d’un programme Java
Remarques

 Il est préférable d’implémenter chaque classe publique dans un fichier séparé.

 Il est indispensable que ce fichier ait le même nom que celui de la classe.

🞑 Exemple : Dans l’exemple précédent, deux fichiers doivent être créés :


[Link]

[Link]

Langage Java 7 FSTH


Encapsulation
Concepts fondamentaux de la POO
Encapsulation
 L‘Encapsulation est le processus de combinaison de données et de fonctions
dans une seule unité.
 C’est est un mécanisme consistant à :
🞑 1) rassembler (encapsuler) les données et les méthodes au sein d'une
structure. L'objectif étant de rendre la classe autonome.

Encapsulation

🞑 2) empêcher l'accès aux attributs et aux méthodes : les rendre inaccessibles


au code extérieur (les masquer).

  L’encapsulation cherche à protéger les données d’un objet.


Langage Java 4 FSTH
Concepts fondamentaux de la POO
Encapsulation
 L’encapsulation interdise l’accès direct aux membres de l’objet.
 On ne dialoguera avec l’objet qu’à travers une interface définissant les
services accessibles => encapsulation des membres.

Monde extérieur Objet

 L'encapsulation permet donc de garantir l'intégrité des données contenues dans


l'objet.

Langage Java 10 FSTH


Concepts fondamentaux de la POO
Encapsulation
 En Java, l’encapsulation précise 3 modes de visibilité des membres (attributs et
méthodes) d’un objet :
🞑 public : les membres sont accessibles par l’objet lui même ou par n’importe
quel autre objet. Il s’agit du niveau le plus bas de protection.
🞑 private : les membres de l’objet sont inaccessibles à partir d’autres objets
🞑 protected : l'accès aux membres est réservé aux fonctions membres de
la classe elle-même ainsi qu’aux classes dérivées (sous-classes).

Langage Java 11 FSTH


Concepts fondamentaux de la POO
Encapsulation
 Lorsqu’aucun mode d’accès n’est spécifié, on dit que ce membre a l'accessibilité par
défaut. les membres sont accessibles par l’objet lui même ou par un autre objet
dans même package.

Langage Java 12 FSTH


Concepts fondamentaux de la POO
Encapsulation

• Public

class Personne {
public int age;
}

public class Test {


public static void main(String[] args) {
Personne p = new Personne();
[Link] = -10; // accès libre
[Link]([Link]);
}
}
Concepts fondamentaux de la POO
Encapsulation

• Private

class Personne {
 Dans main:
private int age;
Personne p = new Personne();
[Link](-10); // refusé par la condition
public void setAge(int a) {
[Link]([Link]());
if (a >= 0) age = a;
}

public int getAge() {


return age;
}
}
Concepts fondamentaux de la POO
Encapsulation

• Protected
class Personne {
protected int age;
}

public class Test extends Personne {


public static void main(String[] args) {
Test t = new Test();

// Comme Test hérite de Personne, il a accès à 'age'


[Link] = 25;

[Link]("L'âge est : " + [Link]);


}
}
Concepts fondamentaux de la POO
Encapsulation
 Exemple 1: Accès pour modification d’un attribut depuis l’extérieur (modification du
contenu d’un attribut) :

Langage Java 16 FSTH


Concepts fondamentaux de la POO
Encapsulation
 Exemple 2 : Accès pour consultation d’un attribut depuis l’extérieur (affichage du
contenu d’un attribut) :

Langage Java 17 FSTH


Structure des classes Java
Structure des classes Java
Getters et setters

 Une classe java est composée de données et de méthodes. En général, les


données de la classe sont déclarés privés.
 Pour donner accès à un attribut privé depuis l'extérieur de la classe, on peut soit :
🞑 mettre le champ public => accès libre par n'importe qui.
🞑 conserver le champ privé, et définir des méthodes publiques :
 getNomAttribut : pour récupérer la valeur de l’attribut  getters.

 setNomAttribut : pour de modifier la valeur de l’attribut setters.

Langage Java 19 FSTH


Structure des classes Java
Getters et setters

 Getters (accesseurs) :

🞑 Ce sont des méthodes permettant de retourner les valeurs des attributs de la


classe.
🞑 Le nom de la méthode doit commencer par « get» suivi par le nom de
l’attribut : getNomAttribut.

🞑 Les getters retournent la valeur de l’attribut.


🞑 Les getters ne doivent avoir aucun paramètre.

Langage Java 20 FSTH


Structure des classes Java
Getters et setters

 Setters (mutateurs) :

🞑 Ce sont des les méthodes permettant de modifier les attributs de la classe.


🞑 Le nom de la méthode doit commencer par « set » suivi par le nom de
l’attribut : setNomAttribut.

🞑 Les setters ne retournent aucune valeur.


🞑 Les setters doivent avoir en paramètre une variable du type de l’attribut qui
contiendra sa nouvelle valeur.

Langage Java 21 FSTH


Structure des classes Java
Getters et setters

 Exemple :
Une classe Point contenant 2 attributs privés (x et y), des getters ainsi que des
setters :

Langage Java 22 FSTH


Structure des classes Java
Getters et setters

Créer une classe Voiture contenant : un attribut marque (String),


un attribut annee (int)
Travail demandé :
1- Mettre les attributs en private
2- Créer :
• un getter pour chaque attribut
• un setter pour chaque attribut
3- Dans main :
créer une voiture
• lui donner la marque Toyota
• lui donner l’année 2022
• afficher ses informations
Structure des classes Java
Getters et setters

Classe voiture: Classe principale:


class Voiture { public class TestVoiture {
private String marque; public static void main(String[] args) {
private int annee;
public String getMarque() { Voiture v = new Voiture();
return marque;
} [Link]("Toyota");
public void setMarque(String m) { [Link](2022);
marque = m;
} [Link]("Marque : " +
public int getAnnee() { [Link]());
return annee; [Link]("Annee : " +
} [Link]());
public void setAnnee(int a) { }
annee = a; }
}
}
Packages en Java
Packages en Java
Package

 Java définit un ensemble de classes utilisables par un grand nombre


d’applications
 Toutes ces classes sont organisées en packages (ou bibliothèques) dédiés
à un thème précis.

 Un package est une unité (un fichier) regroupant des classes.

 Parmi les packages les plus utilisés, on peut citer les suivants :

Langage Java 26 FSTH


Packages en Java
Package

 Pour accéder à une classe d’un package donné, il faut préalablement


importer cette classe ou son package.

 Exemple :
🞑 La classe Date appartenant au package [Link] qui implémente un ensemble
de méthodes de traitement sur une date peut être importée de deux
manières :

 Importer une seule classe du package :


import [Link];

 Importer toutes les classes du package (même les classes non utilisées) :
import [Link].* ;

Langage Java 27 FSTH


Attributs et méthodes de classe
(statiques)
Attributs et méthodes de classe
Variables de classe

 Dans certains cas, il est plus judicieux d’attacher une variable


à une classe plutôt qu’aux objets instanciant cette classe.

 Une telle variable est appelée variable de classe.

 Les variables de classe sont communs à tous les objets de la classe=> si on


modifie la variable dans une instance de la classe, elle le sera dans toutes les
instances.

 L’intérêt d’une variable de classe est qu’elle peut être utilisée (modifiée, affichée,
..) sans avoir besoin d'instancier la classe (créer un nouveau objet).

 Pour déclarer une variable comme variable de classe, on utilise le mot-clé static
qui doit être précisé avant le type de la variable :

static int noteMax= 20;

Langage Java 29 FSTH


Attributs et méthodes de classe
Variables de classe

 Exemple : La classe Etudiant contient la variable de classe nbrEtudiants


permettant de calculer le nombre d’étudiants crées (c’est un compteur du
nombre d’objets instanciés).

// nbrEtudiants=1
// nbrEtudiants =2
// nbrEtudiants =3

Langage Java 30 FSTH


Attributs et méthodes de classe
Variables de classe

 Exemple 1 : Sans utiliser static

Id :1
Id :1

Langage Java 31 FSTH


Attributs et méthodes de classe
Variables de classe

 Exemple 2 : Avec utiliser static

Id :1
Id :2
FSTH

Langage Java 32 FSTH


Attributs et méthodes de classe
Méthodes de classe

 De la même manière que les variables de classe, il existe des méthodes de classe
qui sont associées directement à une classe.

 On peut appeler une fonction de classe sans avoir besoin d'instancier la classe.

 Pour déclarer une méthode de classe, on utilise le mot-clé static qui doit être
précisé avant le type de retour de la méthode.

 Les méthodes de classes statiques sont des méthodes qui existent


indépendamment de tout objet.

Langage Java 33 FSTH


Attributs et méthodes de classe
Exemple

Langage Java 34 FSTH


Attributs et méthodes de classe
Méthodes de classe

Résume

Type de méthode Comment appeler


static [Link]()
normale [Link]()
Attributs et méthodes de classe
Exemple

 Les méthodes de classe statiques ne peuvent pas utiliser ( ou appeler


directement ) les variables d’instances (attributs non statiques) ni this.

Langage Java 36 FSTH


Attributs et méthodes de classe
Exemple

Langage Java 37 FSTH


Attributs et méthodes de classe
Exemple

Langage Java 38 FSTH


Attributs et méthodes de classe
Exemple

Langage Java 39 FSTH


Exercice

Gestion d’un compte bancaire

1) Créer une classe CompteBancaire avec :


- attributs privés : titulaire, solde
- attribut static : nbComptes
2) Ajouter getters et setters
(si solde < 0 → mettre 0)
3) Ajouter méthodes :
- deposer(double montant)
- static int getNbComptes()
4) Dans main :
- créer 2 comptes
- modifier valeurs avec setters
- faire un dépôt
- afficher infos
- afficher nb de comptes

Vous aimerez peut-être aussi