Cours 2 - Classe et objet -JAVA.pdf
Document Details
Uploaded by ComfortingBay
Université Cadi Ayyad
2021
Tags
Full Transcript
Université Cadi Ayyad Ecole Supérieure de Technologie – Safi Cours 2 Cours de la programmation orientée objet (JAVA) Pr. EL ABDELLAOUI SAID Elabdellaoui.s...
Université Cadi Ayyad Ecole Supérieure de Technologie – Safi Cours 2 Cours de la programmation orientée objet (JAVA) Pr. EL ABDELLAOUI SAID [email protected] paradigme objet El Abdellaoui Saïd Programmation Orientée Objet : Java 2020 / 2021 SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi LE PARADIGME OBJET CLASS & OBJET INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES CONCEPTS DES LANGAGES OBJET ( CLASS & OBJET ) 3 Description Class Objet Instance ❑ Classe est un type abstrait caractérisé par des propriétés (Attributs et méthodes). Syntaxe : class nom_de_la_class { // Corps de la classe } Exemple class Rectangle { // Attributs !! double largeur = 11.0; double hauteur = 7.0; // Méthode !! double surface () { return (largeur × hauteur) } } SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES CONCEPTS DES LANGAGES OBJET ( CLASS & OBJET ) 4 Description Class Objet Instance ❑ Objet d’une classe est appelé une instance. Syntaxe : nom_de_la_class nom_Objet= new nom_de_la_class(); Exemple : Rectangle R1= new Rectangle(); SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES CLASS & OBJET : AUTREMENT DIT 5 Description (Class, …) Instanciation (Objet : main) R1 Class Rectangle C1 H =3.0 L=2.7 R2 Class Cercle Rayon =0 ….1 H =6.9 … L=7.3 ….. SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES TYPE OBJET : AUTREMENT DIT 6 Types de données en java Types Objets primitifs (instances de classe) ❑ Java manipule différemment les valeurs des types primitifs et les objets : les variables contiennent des valeurs de types primitifs ou des références aux objets SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi EXERCICES INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES CLASSES D’OBJETS (EXEMPLE) 8 ❑ Exemple : Définir une classe Velo : ◼ Attributs : vitesse ◼ Méthodes : Accélérer, Freiner et ImprimeEtat SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi RÈGLES RAPPELS CONSTRUCTEUR DECONSTRUCTEUR EXEMPLE GLOBALE TD D’ASSOCIATIONS REPRÉSENTATION UML D’UNE CLASSE 9 ❑ Une classe est représentée par un rectangle à 3 compartiments : Rectangle Nom de la classe + Hauteur : float Attributs + Langeur : float + Rectangle (float H,float L) + Surface() : float Méthodes + Afficher( ) : void + Périmètre ( ) : float ❑ Dans java, il existe 4 niveaux de protection: ▪ private (-) Un membre privé ▪ protected (#) un membre protégé ▪ public (+) accès à partir de toute entité interne ou externe à la classe ▪ Autorisation par défaut dans java, en l'absence des trois autorisations précédentes, l'autorisation par défaut est package. SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi RÈGLES RAPPELS CONSTRUCTEUR DECONSTRUCTEUR EXEMPLE GLOBALE TD D’ASSOCIATIONS REPRÉSENTATION UML D’UNE CLASSE 10 ❑ Définir une classe Velo : Attributs : vitesse Méthodes : Accélérer, Freiner et ImprimeEtat ❑ La représentation de la classe Velo: Velo +vitesse : int + Accelerer(int incr) : void + Freiner(int decr) : void + ImprimeEtat( ) : void SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES DÉFINITION D’UNE CLASSE 11 Velo.java DemoVelo.java class Velo { public class DemoVelo { // Attributs public static void main (String [ ] args) { int vitesse = 0; // Génère 2 objets différents du type Velo // Méthodes Velo V1 = new Velo(); void Accelerer(int increment) { Velo V2 = new Velo(); vitesse = vitesse + increment; } // Invoque les méthodes V1.Accelerer(10); void Freiner(int decrement) { V1.ImprimeEtat(); vitesse = vitesse – decrement; } V2.Accelerer(20); V2.ImprimeEtat(); } Void ImprimeEtat() { } System.out.println(" Vitesse = " + vitesse); } Affichage : } ◼ vitesse: 10 V1 ◼ vitesse: 20 vitesse V2 Chaque objet (V1 et V2) instance de la classe Velo = 010 possédera sa propre vitesse vitesse = 020 SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi LE PARADIGME OBJET CONSTRUCTEURS INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES CONSTRUCTEUR DE CLASSE 13 Un constructeur est une méthode : ◼ appelée automatiquement au moment de la création de l’objet. ◼ aide à initialiser les attributs de la classe. Règles des constructeurs en java : ◼ Les constructeurs en java portent le nom de la classe. ◼ Les constructeurs n’ont pas de type de retour. ◼ Une même classe peut avoir plusieurs constructeurs qui doivent se distinguer par leurs paramètres. Si aucun constructeur n’est défini par le programmeur, java considère que la classe est munie d’un constructeur par défaut par défaut.. Exemple : class Rectangle { Rectangle R1 = new Rectangle (); // Attributs !! \\ Constructeur par defaut par defaut double largeur = 11.0; double hauteur = 7.0; Rectangle R1 = new Rectangle (4.1, 7.3); // Constructeur!! \\ Constructeur public Rectangle (double l, double h) { Largeur = l; R1 hauteur = h; } } Largeur =4.1 Hauteur= 7.3 SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi LE PARADIGME OBJET DECONSTRUCTEURS INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES DESTRUCTEUR DE CLASSE 15 ❑ Quand un objet n’est plus utilisé (aucune variable du programme ne contient une référence sur cet objet), il est automatiquement détruit et la mémoire est récupérée (garbage collector) ❑ Un destructeur peut être utilisé pour libérer les ressources spécifiques (déconnexion d’une base de données, fermeture d’un fichier,...). ❑ Il est appelé lorsque le ‘garbage collector’ récupérera la mémoire. ❑ Syntaxe de la méthode destructeur est : void finalize () ❑ Exemple class Rectangle { // Attributs !! double largeur = 11.0; double hauteur = 7.0; // Constructeur!! public Rectangle (double l, double h) { Largeur = l hauteur = h } // Deconstructeur !! public void finalize() { System.out.println(”finalisation de ” + this); } } SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi INTRODUCTION GÉNÉRALITÉS SYNTAXE DE BASE LE PARADIGME OBJET QCM EXERCICES EXEMPLE 16 class Point { class PointDemo { private double x; public static void main (String args[]) { private double y; Point p1 = new Point(1,1); public Point(double x, double y) { Point p2 = new Point(2,2); this.x = x; p1.Afficher(); this.y = y; p2.Afficher(); } p1.translater(10,10); public void translater(double dx,double dy){ p1 = null; x += dx; System.gc(); //Appel de garbage collector y += dy; p1.Afficher(); } p2.Afficher(); } public void Afficher() { } System.out.println "Point[x:"+x+",y:"+y+"]"; } Point[x:1.0, y:1.0] Point[x:2.0, y:2.0] public void finalize() { finalisation de Point[x:11.0, System.out.println("finalisation de"+this); y:11.0] } null } Point[x:2.0, y:2.0] ▪ gc : forcer la récupération de place (Garbage collection) SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi RÈGLES RAPPELS CONSTRUCTEUR DECONSTRUCTEUR EXEMPLE GLOBALE TD D’ASSOCIATIONS ATTRIBUTS 17 ❑ Les modificateurs d’accès aux attributs : Modificateur Classe Paquetage Sous-classe Autre private Oui Non Non Non Attributs / Méthodes aucun Oui Oui Non Non protected Oui Oui Oui Non public Oui Oui Oui Oui SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi RÈGLES RAPPELS CONSTRUCTEUR DECONSTRUCTEUR EXEMPLE GLOBALE TD D’ASSOCIATIONS ATTRIBUTS 18 SAID EL ABDELLAOUI Programmation Orientée Objet : Java EST - Safi EXEMPLE GLOBALE