Cours 2 - Classe et objet -JAVA.pdf

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

Use Quizgecko on...
Browser
Browser