La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Approche Objet & Java Mémoire de fin détudes présenté par Amine Brikci-Nigassa.

Présentations similaires


Présentation au sujet: "Approche Objet & Java Mémoire de fin détudes présenté par Amine Brikci-Nigassa."— Transcription de la présentation:

1 Approche Objet & Java Mémoire de fin détudes présenté par Amine Brikci-Nigassa

2 19/11/2001Approche objet & Java Objectifs Acquisition des notions fondamentales de la « pensée objet » D éterminer le « degré de couverture » de chacune de ces notions par Java

3 Lapproche objet

4 Amine Brikci-Nigassa 19/11/2001Approche objet & Java « Tout est objet » Approche fonctionnelle « Que veut-on faire ? » Approche objet « De quoi parle-t-on? » Chaque objet a une vie

5 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Quest-ce quun objet ? Entité « modélisable », ayant une existence propre, concrète ou abstraite. Exemples : une voiture un client un compte bancaire un bouton une chaîne de caractères " Bravo ! "

6 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Caractéristiques dun objet son Identité son État son Comportement

7 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Caractéristiques dun objet son Identité : –Implicite –Le différencie des autres objets son État son Comportement

8 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Caractéristiques dun objet son Identité son État : –Varie dans le temps –État = valeur des attributs à un instant t attributs = champs = données : propriétés de lobjet (cest la mémoire de lobjet) son Comportement

9 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Caractéristiques dun objet son Identité son État son Comportement : –ensemble des opérations ou méthodes réalisables par lobjet Les méthodes sont déclenchées par des messages envoyés par dautres objets. Méthode (P.O.O.) Fonction (P.Structurée)

10 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Deux méthodes particulières : –Constructeur et –Destructeur

11 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Deux méthodes particulières : –Constructeur : déclenché automatiquement à la création de lobjet construit lobjet initialise ses attributs et –Destructeur

12 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Deux méthodes particulières : –Constructeur et –Destructeur : détruit lobjet (libère sa place) déclenche les actions à effectuer à la mort de lobjet non utilisé dans certains langages de POO (Smalltalk, Java) : les objets sont détruits automatiquement par le « ramasse-miettes » (garbage collector)

13 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Les Classes, moules à objets Regroupent les objets semblables Classe = Type dun objet Fabrication de nouveaux objets (instances de la classe) = instanciation une classe spécifie : –les attributs et leur type –les méthodes

14 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Principes fondamentaux de lapproche objet 3 principes simples mais puissants : Encapsulation Héritage Polymorphisme

15 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Encapsulation Deux significations : –Regroupement des données et des opérations en une seule entité –Masquage des données aux autres objets : les données sont privées, accès restreint seulement aux méthodes publiques, lensemble des méthodes publiques = interface de lobjet Rarement respecté strictement : les langages de P.O.O. admettent laccès aux données (le programmeur décide)

16 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Héritage Réutilisation (extension) dune classe pour en définir une plus spécialisée. La sous-classe étend la super-classe : –hérite de ses attributs et méthodes –en définit de nouveaux Une super-classe peut être étendue par plusieurs sous-classes arborescence Deux sens possibles : –Spécialisation : super-classe sous-classe (vers k bas) –Généralisation : sous-classe super-classe (vers k haut)

17 Amine Brikci-Nigassa Relation dHéritage

18 Amine Brikci-Nigassa Héritage multiple Une classe peut hériter de plusieurs super- classes : cest lhéritage multiple. Problème : une classe peut hériter 2 méthodes de même nom (provenant de 2 super-classes différentes) laquelle choisir ? Conséquences : risque derreurs, confusions.

19 Amine Brikci-Nigassa 19/11/2001Approche objet & Java Polymorphisme Faculté, pour une méthode, de prendre plusieurs formes différentes selon : –lobjet concerné : liaison dynamique –les types et nombre des paramètres : surcharge En réalité, ce sont des méthodes différentes avec le même nom

20 Amine Brikci-Nigassa Autres concepts de lapproche objet Classes abstraites Interfaces Persistance Paquetages

21 Amine Brikci-Nigassa Autres concepts de lapproche objet Classes abstraites : –Classes non instanciables, créées pour être étendues –Souvent le résultat dune généralisation visant à regrouper des classes différentes (« extension vers le haut ») –Permettent des méthodes abstraites, sans corps, à redéfinir chez les sous-classes Interfaces Persistance Paquetages

22 Amine Brikci-Nigassa Autres concepts de lapproche objet Classes abstraites Interfaces : –Classes sans méthodes « concrètes » –Simples spécifications à implémenter par leurs sous- classes –Implémentation de plusieurs interfaces = alternative à lhéritage multiple Persistance Paquetages

23 Amine Brikci-Nigassa Autres concepts de lapproche objet Classes abstraites Interfaces Persistance : –Aptitude dun objet à exister au-delà du processus qui la créé – sauvegarde des données sur un support physique –Fait défaut dans les langages de P.O.O. –Solution davenir : S.G.B.D.O. Paquetages

24 Amine Brikci-Nigassa Autres concepts de lapproche objet Classes abstraites Interfaces Persistance Paquetages : –Regroupements des classes en unités organisationnelles –Regroupent : classes, interfaces, sous-paquetages hiérarchisation

25 Amine Brikci-Nigassa Applications de lapproche objet Propagation « ascendante » dans le cycle de vie :

26 Amine Brikci-Nigassa Applications de lapproche objet Atteint tous les domaines de linformatique : –Méthodes : OMT, OOD, OOSE, OOM,… et le nouveau standard : UML –Langages de P.O.O. : Simula (1967), Smalltalk (1976), C++, Java (1995), Python, C#, … –Bases de données objet : encore hésitantes, implémentent la persistance, mais difficile de simposer dans le règne des SGBD relationnelles –Architectures distribuées : communication dobjets sur un réseau. Émergence de 2 standards : DCOM de Microsoft (Windows) CORBA de lOMG (UNIX) –etc.

27 Amine Brikci-Nigassa Le langage

28 Amine Brikci-Nigassa Caractéristiques de Java Orienté objet Portable, Multi-plate-formes Sécurisé Simplifié Multithread Distribué Performant

29 Amine Brikci-Nigassa Deux types de programmes Après compilation dun programme Java, on obtient au choix : une Applet : programme intégré à une page Web, exécuté par le navigateur une Application : logiciel « classique » exécutable indépendamment, sur une machine virtuelle Java (JVM)

30 Amine Brikci-Nigassa Le JDK Cest lenvironnement de développement fourni gratuitement par Sun Comprend essentiellement : –un Compilateur (javac) : compile les sources.java en byte-code (fichiers.class) –un Interpréteur (java) : exécute le byte-code

31 Amine Brikci-Nigassa Classes en Java class Rectangle { double largeur ; double hauteur ; double surface() ; void afficher(double x, double y) ; } surface() afficher() largeur hauteur Rectangle

32 Amine Brikci-Nigassa Types des variables Classes : ce sont les types des variables objet Types élémentaires : types du genre « programmation classique » : entier, réel, booléen, caractère… –Simplifient la programmation, –MAIS leur utilisation est contraire à la pensée « tout objet » –ont leur équivalent objet : classes enveloppes, peu utilisées

33 Amine Brikci-Nigassa Constructeurs et Destructeurs Constructeur : –déclaré comme les autres méthodes, mais : a obligatoirement le même nom que la classe pas de type de retour (pas de void ) –utilisé pour initialiser les attributs, lallocation de mémoire est automatique (implicite) –pas obligatoire : son omission constructeur vide implicite

34 Amine Brikci-Nigassa Constructeurs et Destructeurs Destructeur : –Pas de destructeur en Java –La destruction (libération de la mémoire) est laffaire du « ramasse-miettes » (garbage collector) qui sen occupe « quand il veut » –La méthode finalize() est une alternative peu utilisée. Elle est exécutée au moment (imprévisible) de la destruction.

35 Amine Brikci-Nigassa Les objets : Instanciation Lopérateur new crée un objet et appelle son constructeur. Ex.: new Rectangle(10,25) Lobjet doit être rattaché à une variable objet à déclarer préalablement: Rectangle r ; r = new Rectangle() ; Ou : Rectangle r = new Rectangle() ;

36 Amine Brikci-Nigassa Identité dun objet La variable ( r ) déclarée nest pas un véritable objet mais une référence (un « pointeur ») Laffectation ( r=new Rectangle(); ) relie la référence à lobjet créé. La référence est limplémentation de lidentité dun objet. Deux objets au même contenu nont pas forcément la même identité : deux variables objets référençant des objets semblables ne sont pas égales (égalité profonde Vs. égalité superficielle)

37 Amine Brikci-Nigassa Encapsulation Le masquage des données (et de méthodes) est contrôlé par le programmeur : mots-clés private, protected et public placés devant. Les données peuvent être publiques : Contradiction avec le paradigme objet !

38 Amine Brikci-Nigassa Héritage class Western extends Film { extends indique lhéritage Seul lhéritage simple est autorisé Lhéritage multiple, source de problèmes est remplacé par lutilisation des interfaces

39 Amine Brikci-Nigassa Polymorphisme Liaison dynamique Surcharge des méthodes

40 Amine Brikci-Nigassa Polymorphisme Liaison dynamique : –Un message est relié à la bonne méthode (celle du bon objet) à lexécution Surcharge des méthodes

41 Amine Brikci-Nigassa Polymorphisme Liaison dynamique Surcharge des méthodes : –Différenciation des méthodes homonymes à la compilation par leur signature –Signature = nom + liste ordonnée des paramètres –Nécessaire pour déclarer plusieurs constructeurs (leur nom est imposé)

42 Amine Brikci-Nigassa Classes abstraites Méthode abstraite : précédée du mot clé abstract. Pas de corps. Une classe abstraite (mot-clé abstract) ne peut être instanciée. Servent à la hiérarchisation des classes (exemple : la classe Object du JDK généralise toutes les classes)

43 Amine Brikci-Nigassa Interfaces « Classe » dont toutes les méthodes sont abstraites. Déclarée par « interface » au lieu de « class » Utilisée avec « implements » au lieu de « extends » Héritage multiple est remplacé au choix par : –Limplémentation de plusieurs interfaces, –Lextension dune super-classe et limplémentation dune interface

44 Amine Brikci-Nigassa Paquetages Classes et interfaces standard du JDK : organisées en paquetages. Implémentation : structure de répertoires Mot-clé package au début : définit le paquetage Mot-clé import : permet laccès à un paquetage

45 Amine Brikci-Nigassa Persistance Java na pas de support direct de la persistance, mais propose 2 solutions : La Sérialisation Le JDBC

46 Amine Brikci-Nigassa Persistance Java na pas de support direct de la persistance, mais propose 2 solutions : La Sérialisation : –Lecture et écriture des données dun objet dans un flux (série doctets) –Utilise linterface standard Serializable –Satisfaisante pour de petites quantités de données –Souvent insuffisante (applications de gestion) Le JDBC

47 Amine Brikci-Nigassa Persistance Java na pas de support direct de la persistance, mais propose 2 solutions : La Sérialisation Le JDBC : (Java DataBase Connectivity) –Module de bases de données du JDK. –Relie les SGBDR à Java. Utilise le langage SQL pour manipuler les tables. –Problème de conversion objet-relationnel –Solution : Bibliothèque de persistance = couche logicielle pour faire abstraction de laspect relationnel

48 Amine Brikci-Nigassa Conclusion

49 Conclusion Java est bien un langage de P.O.O., il implémente la plupart des concepts objet. Quelques exceptions : –Types élémentaires non objet, –Permet les champs de données publics, –Empêche lhéritage multiple, –Préfère les SGBDR aux SGBDO. Un Java plus « orthodoxe » perdrait peut-être de sa simplicité ? Il est possible de « faire plus objet » que Java. Exemple : Python (il est même plus simple !)


Télécharger ppt "Approche Objet & Java Mémoire de fin détudes présenté par Amine Brikci-Nigassa."

Présentations similaires


Annonces Google