0% ont trouvé ce document utile (0 vote)
12 vues49 pages

Séance 2 Java 1

Le document présente un cours sur le développement orienté objet avec Java, couvrant des sujets tels que les classes, les objets, l'héritage et le polymorphisme. Il inclut également des informations sur l'historique de Java, son installation et des exemples de code. Le cours est structuré en plusieurs chapitres, chacun abordant des concepts fondamentaux de la programmation Java.

Transféré par

Manal Enniya .
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)
12 vues49 pages

Séance 2 Java 1

Le document présente un cours sur le développement orienté objet avec Java, couvrant des sujets tels que les classes, les objets, l'héritage et le polymorphisme. Il inclut également des informations sur l'historique de Java, son installation et des exemples de code. Le cours est structuré en plusieurs chapitres, chacun abordant des concepts fondamentaux de la programmation Java.

Transféré par

Manal Enniya .
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

Développement Orienté Objet :

Programmation objet/Java

Pr. Mariame Nassit

2025/2026 [Link] 1
Plan
1. Introduction à Java
2. Classes et Objets
3. Constructeurs
4. Héritage
5. Polymorphisme
6. Tableaux et collection
7. Classes abstraites, interfaces et packages
8. Gestion des exceptions
9. Flux d’entrées/ sorties en JAVA

2025/2026 [Link] 2
Chapitre 1

Introduction à Java

2025/2026 [Link] 3
Introduction à Java
Introduction et historique
 Programmation traditionnelle:
• Dans la programmation classique, les données sont séparées des traitements. Une application est
généralement structurée en deux étapes principales :

1. Définition des structures de données :


Cette étape consiste à créer des structures capables de stocker les informations nécessaires
pour gérer le système.
2. Conception des fonctions et procédures :
Cela implique de définir les opérations ou traitements qui vont agir sur les structures de
données établies lors de la première étape

2025/2026 [Link] 4
Introduction à Java
Introduction et historique
 Programmation traditionnelle:
Exemple
• Dans une application de gestion de bibliothèque, on peut distinguer deux types de modèles
conceptuels :
 Modèle Conceptuel des Données (MCD) :
Il représente les informations relatives aux données, telles qu’une personne avec ses différentes
caractéristiques : nom, prénom, adresse, et CNE.
 Modèle Conceptuel de Traitement (MCT) :
Il décrit les opérations réalisées sur ces données. Par exemple, le traitement d’une demande
d’emprunt de livre, avec des conditions spécifiques comme la disponibilité ou non du livre.
• Ce modèle illustre clairement la séparation entre les données et les traitements, un principe essentiel
de la programmation traditionnelle.

2025/2026 [Link] 5
Introduction à Java
Introduction et historique
 Programmation orientée objet
• La programmation orientée objet a été introduite pour répondre aux limites des approches précédentes.
Ses principes fondamentaux sont :
 Encapsulation : rassembler au sein d'une même unité (appelée classe) les données et les traitements.
 Contrôle d’accès : déclarer les données comme privées pour forcer l’utilisateur à employer les
traitements encadrés par la classe.

• En général, les langages orientés objet reposent sur quatre caractéristiques essentielles : Encapsulation,
Abstraction, Héritage et Polymorphisme.

• En conception et analyse orientées objet, UML est le langage de modélisation le plus utilisé.

• Concernant la programmation orientée objet, Java est l’un des langages les plus populaires.

2025/2026 [Link] 6
Introduction à Java
Introduction et historique
 Historique
• Le projet Java, lancé en 1991 par Sun Microsystems et racheté par
Oracle en 2010, avait pour objectif de développer des logiciels capables
de fonctionner indépendamment de la plateforme matérielle utilisée.
 Évolution des versions du JDK (Java Development Kit) :
 JDK 1.0 : publié en 1996, première version officielle de Java.
 JDK 8 : lancé en 2014
 JDK 21 : publié en septembre 2024

2025/2026 [Link] 7
Introduction à Java
La plate forme Java
• La plateforme Java repose sur trois éléments principaux :
 Le langage Java.
 La machine virtuelle Java (JVM).
 Les bibliothèques Java.

• La compilation en Java se déroule ainsi :


 Le code source (avec l’extension .java) est traduit en bytecode (avec l’extension .class).
 Ce bytecode est stocké dans un fichier exécutable par la JVM, permettant une portabilité
totale du code.

2025/2026 [Link] 8
Introduction à Java
Premier programme en Java
• Le code source en Java qui affiche le message "Premier programme en Java" :
public class PremierExemple {
public static void main(String[] args) {
[Link]("Premier programme en Java");
}
}
Remarque:
• Le programme doit impérativement être enregistré dans un fichier dont le nom correspond à celui de
la classe, soit [Link].
• Pour compiler le programme précédent, il est nécessaire d'abord d'installer l'environnement de
développement JDK (Java Development Kit).

2025/2026 [Link] 9
Introduction à Java
Installation de JDK
 Installation sous Windows

• Télécharger la version de jdk (jdk-17.0.12_windows-x64_bin.exe ) correspondant à votre architecture (64


bits) de:

[Link]

• Exécuter le fichier téléchargé et ajouter

C:\Program Files\Java\jdk1.7.0\_xy\bin au chemin, en modifiant la variable path.

• Pour modifier la valeur de path:


cliquer sur démarrer puis Panneau de configuration puis Système et sécurité puis Paramètres système
avancés
cliquer sur Variables d'environnement puis chercher dans variables système Path et modifier son
contenu.

2025/2026 [Link] 10
Introduction à Java
Installation de JDK
Compilaion
• Dans une console, naviguez vers le répertoire contenant votre fichier en utilisant la commande cd, puis
tapez la commande suivante :
javac [Link]

• Après la compilation, si votre programme ne contient aucune erreur, le fichier [Link]


sera généré.

Exécution
• Pour exécuter le fichier .class, tapez la commande suivante (sans l'extension) :
java PremierExemple
• Après l'exécution, le message suivant sera affiché : Premier Programme Java.

2025/2026 [Link] 11
Introduction à Java
Installation de JDK
Description du programme

• Première classe
• En Java, toutes les déclarations et instructions doivent être faites à l'intérieur d'une classe.

• public class PremierExemple signifie que vous avez déclaré une classe nommée PremierExemple.

• Méthode main
Pour qu'un programme Java puisse être exécuté, il doit contenir la méthode spéciale main(), qui est l'équivalent de
main dans le langage C.
 String[] args dans la méthode main permet de récupérer les arguments transmis au programme lors de son exécution.

 String est une classe, et les crochets [] indiquent que args est un tableau (nous aborderons l'utilisation des tableaux plus en
détail plus tard).

 Le mot-clé void désigne le type de retour de la méthode main(), indiquant qu'elle ne retourne aucune valeur lors de son
appel.

2025/2026 [Link] 12
Introduction à Java
Installation de JDK
 Description du programme

Méthode main
• Le mot-clé static indique que la méthode est accessible et utilisable même sans qu'aucun objet de la classe ne soit créé.
 Le mot-clé public définit les droits d'accès. Il est obligatoire dans l'instruction public static void main(String[] args), mais peut être
omis dans la ligne public class PremierExemple.

Méthode println

• La méthode println sert à afficher un message. Par exemple, dans l'instruction [Link](« Premier Programme Java") :
 System est une classe.
 out est un objet dans la classe System.
 println() est une méthode (fonction) de l'objet out. Les méthodes sont toujours suivies de ()

• Les points . séparent les classes, les objets et les méthodes.

• Chaque instruction doit se terminer par un point-virgule (;).

• "Premier Programme Java" est une chaîne de caractères.

2025/2026 [Link] 13
Introduction à Java
Commentaire en Java
• Les commentaires en Java peuvent être écrits sur une seule ligne ou sur plusieurs lignes. Voici un
exemple :
/* Ceci est un commentaire
sur plusieurs lignes */
public class PremierExemple {
// Ceci est un commentaire sur une seule ligne
public static void main(String[] args) {
[Link]("Premier Programme Java ");
}
}

2025/2026 [Link] 14
Introduction à Java
Données primitives
• Voici un tableau regroupant les types primitifs en Java :
Type Description Taille Valeurs possibles

byte Entier 8 bits -128 à 127

short Entier 16 bits -32,768 à 32,767

int Entier 32 bits -2³¹ à 2³¹-1

long Entier 64 bits -2⁶³ à 2⁶³-1

float Nombre à virgule flottante 32 bits ±3.40282347E+38 (précision simple)

±1.7976931348623157E+308 (haute
double Nombre à virgule flottante 64 bits
précision)

char Caractère Unicode 16 bits 0 à 65,535

boolean Valeur booléenne 1 bit true ou false

2025/2026 [Link] 15
Introduction à Java
Données primitives
 Constante

• En Java, une constante est une variable dont la valeur est fixe et ne peut pas être modifiée après
son initialisation. Pour déclarer une constante, on utilise le mot-clé final.
final type nomConstante = valeur;

Exemple
• final int AGE_MAX = 100;
• final double PI = 3.14159;

2025/2026 [Link] 16
Introduction à Java
Opérateurs et expressions
• Comme en C, Java possède les opérateurs arithmétiques et de comparaison habituels.

• On retrouve également les expressions arithmétiques, les comparaisons et les boucles classiques du langage
C.

• Des fonctionnalités spécifiques à Java seront abordées dans les chapitres suivants.

2025/2026 [Link] 17
Introduction à Java
Opérateurs et expressions
Exemple
public class ExempleSimple {
public static void main(String[] args) { // Déclaration de variables
int a = 10, b = 5; int resultat;
// Opérateurs arithmétiques
resultat = a - b; // Soustraction
// Expression conditionnelle
if (resultat > 0) {
[Link]("La différence est positive.");
} // Boucle for pour afficher les nombres de 1 à 3
for (int i = 1; i <= 3; i++) {
[Link]("i = " + i);
}

2025/2026 [Link] 18
Introduction à Java
Exercices
• Exercice 1:
Déclarer deux variables avec des valeurs définies et afficher leur somme.
• Exercice 2:
Déclarer un nombre et afficher s'il est pair ou impair.
• Exercice 3:
Calculer et afficher la factorielle d'un nombre fixe, par exemple, 5.
• Exercice 4:
Afficher la table de multiplication d'un nombre fixe (par exemple, 3).

2025/2026 [Link] 19
Chapitre 2

Classes et objets

2025/2026
[Link] 20
Classes et objets
Introduction
• Java est un langage orienté objet. Tout élément doit se trouver à l'intérieur d'une classe.
• Le nom d'une classe (appelé identifiant) doit respecter les règles suivantes :
 L'identifiant doit commencer par une lettre, un tiret bas (_) ou un signe dollar ($). Il ne peut
pas commencer par un chiffre.
 L'identifiant ne doit contenir que des lettres, des chiffres, le caractère _, et le signe $.
 Un identifiant ne peut pas correspondre à un mot réservé (voir tableau ci-dessous).
 Un identifiant ne peut pas correspondre aux mots suivants : true, false, ou null. Bien que ces
termes ne soient pas des mots réservés, ils représentent des types primitifs et ne peuvent
donc pas être utilisés comme noms de classe.

2025/2026
[Link] 21
Classes et objets
Introduction
abstract continue for new switch
assert default goto package synchronized
boolean do if private this
break double implements protected throw
byte else import public throws
case enum instanceof return transient
catch extends int short try
char final interface static void
class finally long strictfp volatile
const float native super while
Table 1 : Table mots clés

2025/2026 [Link] 22
Classes et objets
Introduction
• En Java, il est recommandé, par convention, de commencer les noms des classes par une lettre majuscule.
• De plus, il est conseillé d'utiliser des majuscules pour le début des autres noms afin d'améliorer la lisibilité
du code.
• La table ci-dessous présente des mots qui peuvent être utilisés comme noms de classes.

Nom de la classe Description

Etudiant Commence par une majuscule

Commence par une majuscule et le deuxième mot commence


NotesEtudiant
également par une majuscule

AnnéeScolaire2024 Commence par une majuscule et ne contient pas d'espace

Table 2 : Quelques noms de classes valides

2025/2026 [Link] 23
Classes et objets
Introduction
• La table 3 liste des mots qui peuvent également être utilisés comme noms de classes, bien que
leur utilisation soit déconseillée. Si vous choisissez d'utiliser l'un de ces mots, le programme
compilera sans erreur

Nom de la classe Description


etudiant Ne commence pas par une majuscule
ETUDIANT Le nom est entièrement en majuscules, ce qui n’est pas recommandé
L’usage du caractère _ ne reflète pas une convention pour marquer un nouveau
Notes_Etudiant
mot
Ne commence pas par une majuscule, et le deuxième mot n’est pas clairement
annéescolaire2024
identifiable, ce qui rend le nom difficile à lire

Table 3 : Quelques noms de classes non recommandés


2025/2026 [Link] 24
Classes et objets
Introduction
• la table 4 regroupe les mots qui ne peuvent pas être utilisés comme noms de classes.

Nom de la classe Description


Etudiant# Contient #
double Mot réservé
Notes Etudiant Contient espace

2024annéescolaire Commence par un chiffre

Table 4 : Quelques noms de classes non recommandés

2025/2026 [Link] 25
Classes et objets
Introduction
• Représentation en UML la classe Etudiant

2025/2026 [Link] 26
Classes et objets
Déclaration d’une classe
• Une classe peut inclure des méthodes (fonctions) et des attributs (variables).
• Pour créer une classe, on utilise le mot-clé class. Par exemple, voici le prototype de la classe Etudiant :
class Etudiant {
// Déclarations
// Attributs et méthodes
}

Remarques :
1. Il est possible de définir plusieurs classes dans un même fichier, mais une seule classe peut être
précédée du mot-clé public. De plus, le fichier doit porter le même nom que cette classe publique.
2. Une classe peut être déclarée dans un fichier séparé, lequel doit porter le même nom que la classe,
suivi de l'extension .java.
3. Pour que la machine virtuelle Java (JVM) puisse accéder à une classe contenant la méthode main,
cette classe doit obligatoirement être publique.
2025/2026
[Link] 27
5
Classes et objets
Définition des attributs
• Un étudiant est caractérisé par les propriétés suivantes : son nom, son prénom, son numéro CNE et sa
moyenne.

• En Java, ces attributs peuvent être codés dans notre classe de la manière

2025/2026
[Link] 28
Classes et objets
Définition des attributs
• class Etudiant {
// Attributs de la classe Etudiant
private String nom; // Le nom de l'étudiant
private String prenom; // Le prénom de l'étudiant
private String cne; // Le numéro CNE de l'étudiant
private double moyenne; // La moyenne de l'étudiant
}
• Par convention, les noms des attributs et des methodes doivent être en minuscule.
• Le premier mot doit commencer en minuscule et les autres mots doivent commencer en majuscules
(ceciEstUneVariable, ceciEstUneMethode).
Remarque :
• La présence du mot clé private (prive) indique que les variables ne seront pas accessibles de l'extérieure
de la classe ou elles sont définies.
• C'est possible de déclarer les variables non privées, mais c'est déconseillé.

2025/2026 [Link] 29
Classes et objets
Définition des méthodes
• Dans la classe Etudiant, nous avons défini trois méthodes :

 initialiser() : cette méthode permet d'initialiser les informations relatives à un étudiant.

 afficher() : cette méthode affiche les informations d'un étudiant.

 getMoyenne() : cette méthode retourne la moyenne d'un étudiant.

2025/2026 [Link] 30
Exemple: classe Etudiant
Classes et objets

 Une classe peut contenir plusieurs méthodes définies en son sein.

 Lorsque le mot-clé public est utilisé, cela indique que les méthodes sont accessibles depuis l’extérieur de la classe.
Cependant, il est également possible de déclarer des méthodes privées.

2025/2026 [Link] 31
Utilisation des classes
Classes et objets
• Après avoir déclaré une classe, celle-ci peut être utilisée pour déclarer un objet (c'est-à-dire une variable
de type classe) dans n'importe quelle méthode.
• Pour utiliser la classe Etudiant :
Etudiant et1;
• Contrairement aux types primitifs, cette déclaration ne réserve pas d'espace mémoire pour l'objet de type
Etudiant, mais crée uniquement une référence à cet objet.
• Pour réserver de la mémoire, il est nécessaire d'utiliser le mot-clé new, comme suit :
et1 = new Etudiant();
• Ces deux instructions peuvent être combinées en une seule :
Etudiant et1 = new Etudiant();

2025/2026 [Link] 32
Classes
Utilisation des classes: Référence
et objets

• Les objets sont manipulés à l'aide de références. Prenons l'exemple classique de l'animal et du chien :
Chien = Objet.
Animal = Référence.
 Pour interagir avec l’objet (chien), on utilise la référence (animal).
 Avoir une référence ne signifie pas forcément posséder l’objet (par exemple, on peut avoir une référence à un
animal sans qu'il s'agisse d'un chien).

• Maintenant, nous pouvons appliquer n’importe quelle méthode à l’objet et1.


• Par exemple, pour initialiser les attributs de et1, on procède de la manière suivante :
[Link](« SALIM", "Mohammed", "A8899", 12.5);

2025/2026
[Link] 33
Classes et objets
Utilisation des classes: Exemple
• Dans l’exemple ci-dessous, on utilisera la classe ExempleEtudiant pour tester la classe Etudiant, qui
représente notre classe principale (celle contenant la méthode main()) :

2025/2026 [Link] 34
Classes et objets
Utilisation des classes: Exemple
Résultats:

2025/2026 [Link] 35
Classes et objets
Portée des attributs
• Les attributs d’une classe sont accessibles dans toutes les méthodes de cette même classe.

• Il n’est donc pas nécessaire de les transmettre en tant qu’arguments. Cependant, à l’extérieur de la classe, les attributs
privés ne sont pas directement accessibles.

• Par exemple, dans la classe ExempleEtudiant, une instruction comme :

Etudiant et = new Etudiant();

moy = [Link];

• provoquera une erreur de compilation avec le message : The field [Link] is not visible.

• Cela s’explique par le fait que l’attribut moyenne est privé et n’est accessible qu’à l’intérieur de la classe Etudiant, mais
pas dans la classe ExempleEtudiant. C’est pourquoi, dans l’exemple précédent, nous avons utilisé la méthode
getMoyenne() pour accéder à la valeur de moyenne.

2025/2026 [Link] 36
Classes et objets
Surcharge des méthodes
• La surcharge se produit lorsqu'il existe plusieurs méthodes portant le même nom au sein d'une classe.

• Ces méthodes doivent se différencier par le nombre ou le type des arguments qu'elles acceptent.

Exemple :

• Dans la classe Etudiant, on peut ajouter trois méthodes ayant le même nom, mais avec des signatures
différentes :
1. Une méthode prenant trois arguments de type double.
2. Une méthode prenant deux arguments de type double.
3. Une méthode prenant deux arguments de type float

2025/2026 [Link] 37
Classes et objets
Surcharge des méthodes

2025/2026
[Link] 38
Classes et objets
Surcharge des méthodes
 Utilisation de la classe Etudiant

• À présent, nous utiliserons la classe principale ExempleEtudiant pour effectuer des tests sur la classe
modifiée Etudiant

2025/2026 [Link] 39
Classes et objets
Surcharge des méthodes
 Conflit

2025/2026 [Link] 40
Classes et objets
Surcharge des méthodes
 Conflit

L'exemple précédent génère des erreurs de compilation :

2025/2026 [Link] 41
Classes et objets
Méthodes statiques et finales
 Attributs statiques
• Les variables statiques, également appelées variables de classe, sont partagées entre toutes les instances d'une même classe.

• Contrairement aux variables d'instance, une seule copie d'une variable statique est créée pour toute la classe, indépendamment du
nombre d'objets créés.

• Lorsqu'un objet est instancié à l'aide de l'opérateur new, aucune nouvelle mémoire n'est allouée pour une variable statique.
• Pour déclarer une variable statique, le mot-clé static doit être utilisé

2025/2026 [Link] 42
Méthodes statiques et finales
Classes et objets
 Constantes final et static

• Une constante partagée par toutes les instances d'une classe peut être déclarée à l'aide des modificateurs final
static. Par exemple :
class A { final static double PI = 3.1415927;
static final double Pi = 3.1415927; }

• La classe Math fournit des constantes statiques comme [Link] (valant 3.14159265358979323846).
• Dans la classe Math, la constante PI est déclarée comme suit : public final static double PI =
3.14159265358979323846;

• Les caractéristiques de PI sont les suivantes :


 public : Elle est accessible depuis n'importe quel endroit.
 final : Sa valeur ne peut pas être modifiée.
 static : Une seule copie de cette constante existe, et elle est accessible sans qu'il soit nécessaire de créer un
objet de la classe Math.

2025/2026 [Link] 43
Classes et objets
Méthodes statiques et finales
 Méthodes statiques
• Une méthode peut être déclarée comme statique en utilisant le mot-clé static.

• Une méthode statique peut être appelée directement à partir de la classe, sans avoir besoin de créer une instance de
celle-ci.

• Ces méthodes sont également appelées méthodes de classe.

• Restrictions des méthodes statiques :

 Elles ne peuvent appeler que d'autres méthodes statiques.

 Elles ne peuvent utiliser que des attributs statiques.

2025/2026 [Link] 44
Classes et objets
Méthodes statiques et finales
 Méthodes statiques: exemple

2025/2026 [Link] 45
Lecture à partir du clavier
Classes et objets
• Pour effectuer une lecture depuis le clavier, Java fournit la classe Scanner.

• Afin de rendre cette classe accessible au compilateur, il est nécessaire d'ajouter l'instruction suivante :
import [Link];

• Quelques méthodes principales de la classe Scanner :


 nextShort() : Permet de lire une valeur de type short.
 nextByte() : Permet de lire une valeur de type byte.
 nextInt() : Permet de lire une valeur de type int.
 nextLong() : Permet de lire une valeur de type long (sans besoin d’ajouter L après le nombre saisi).
 nextFloat() : Permet de lire une valeur de type float (sans besoin d’ajouter F après le nombre saisi).
 nextDouble() : Permet de lire une valeur de type double.
 nextLine() : Permet de lire une ligne complète et la retourne sous forme de chaîne (String).
 next() : Permet de lire le mot suivant sous forme de chaîne (String).

2025/2026 [Link] 46
Classes et objets
• Exercice 1 :
1. Créer une classe Calculatrice qui possède plusieurs méthodes pour effectuer des
opérations de calcul.
2. Implémenter une méthode additionner qui additionne deux nombres.
3. Surcharger cette méthode pour qu'elle puisse également additionner trois
nombres.
4. Ensuite, créer une méthode afficherResultat pour afficher le résultat du calcul.
• Exercice 2 :
1. Créer une classe Personne qui a un attribut compteur (de type int et statique) qui
compte le nombre d'objets Personne créés.
2. Ajouter un attribut nom (de type String).
3. La classe doit également avoir deux méthodes setNom et afficherInfo qui initialise
et affiche le nom de la personne.
4. La méthode afficherCompteur doit afficher le nombre d'objets Personne créés.

2025/2026 [Link] 47
Classes et objets
• Exercice 2 :
1. Créer une classe Cercle avec un attribut statique PI (constante représentant la
valeur de pi).
2. Ajouter un attribut rayon de type double pour chaque objet.
3. Créer une méthode statique calculerAire qui calcule l'aire du cercle en utilisant la
formule Aire=π×rayon

2025/2026 [Link] 48
Classes et objets
• Exercice 1 : Surcharge de méthodes en Java

2025/2026 [Link] 49

Vous aimerez peut-être aussi