Interfaces : comment classifier ?

Slides:



Advertisements
Présentations similaires
Introduction Rétro ingénierie d’interfaces graphiques
Advertisements

La programmation orientée objet avec Java L3-MIAGE Plan
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Approfondissement du langage
(Classes prédéfinies – API Java)
F. Voisin : Introduction à Java 1 Introduction à Java - les interfaces - Frédéric VOISIN FIIFO - « Remise à Niveau »
Plan du cours La sérialisation: – comment stocker et restaurer les Objets? Les interfaces graphiques et la programmation évènementielle. –Comment concevoir.
MIKHAYLOVA Vera Exposé Java principe de fonctionnement Lundi 17 mai 2004 DEUG 1ère année Science du langage Paris III.
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
ACS et Séquences Comportementales en environnements non-markoviens
Les entrées /sorties en Java François Bonneville
Traitement des erreurs en Java
Chapitre III Héritage (début)
Principes de programmation (suite)
Pattern État PowerPoint 2003, télécharger la visionneuse PowerPoint Viewer dernière édition si vous ne lavez pas…télécharger la visionneuse PowerPoint.
Programmation orientée objet
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
COURS DE PROGRAMMATION ORIENTEE OBJET :
Laboratoire d'Informatique de l’Université de Franche-Comté
IFT1025, Programmation 2 Jian-Yun Nie
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
Java Héritage, interfaces.
Historique de SystemC Regroupe 4 courants didées: SCENIC Project : Synopsys+UC Irvine Philips System-Level Data Types, VSIA SLD DWG IMEC, Hardware-Software.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Classes abstraites et Interfaces
Interfaces (fin) classes locales et internes, Object, clonage.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
Structures de données IFT-2000
Programme de baccalauréat en informatique Programmation Orientée Objets IFT Thierry EUDE Module 7 : Classes et fonctions paramétrables Département.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction au paradigme orienté-objet (suite)
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
1 Les paquetages («packages»). 2 L'objectif avec les paquetages («packages») est de rendre accessibles aux utilisateurs des classes définies par d'autres.
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Patrons de conceptions de créations
Objectifs À la fin de ce cours, vous serez capables de :
Factory Design Patterns. Contents Factory patterns: principesFactory patterns: principes The Factory Method patternThe Factory Method pattern The Abstract.
La Modélisation Orientée Objet Concevoir un programme : modélisation du problème à résoudre Notion de programme : machine de Turing Pouvoir d’expression.
Programmation objet La base.
Créer des packages.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 1 – Objets et Classes Master 1 SIGLIS1Java Lecteur - Chapitre 1 Objets et classes.
Tutorat en bio-informatique
5ième Classe (Mercredi, 19 octobre) Prog CSI2572.
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Le polymorphisme.
Cours du 5 novembre.
Héritage H. Batatia. plan Notion (que signifie l’héritage) Ecriture en java Héritage multiple (interdit) Instanciation (partie propre et partie héritée)
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Introduction à la programmation objet avec java
Héritage Conception par Objet et programmation Java
Introduction à la Programmation Orientée Objet
Généricité.
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
LES CLASSES ET LES OBJETS
JAVA et l'orientation objet Jean-Jacques LE COZ. Encapsulation L'encapsulation est le concept de masquer l'implémentation de la classe De ne permettre.
Transcription de la présentation:

Interfaces : comment classifier ? Java ne permet pas l’héritage multiple Or, il existe parfois différentes classifications possibles selon plusieurs critères François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Exemple de classification Selon la forme Solides convexes Polyèdres Solides de révolution Parallélépipède Cylindres Sphères Cube François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Autre classification Selon la matière matiere Matiere organique composée minéral carbone François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Autres critères D’autres critères qui pourraient servir à réaliser une classification décrivent des comportements ou des capacités « électrique » « comestible » « lumineux » Or ces « mécanismes » peuvent être commun à différentes classes non reliées entre elles par une relation d ’héritage François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Notion d’ « Interfaces » Pour définir qu'une certaine catégorie de classes doit implémenter un ensemble de méthodes, on peut regrouper les déclarations de ces méthodes dans une interface. Le but est de décrire le fait que de telles classes pourront ainsi être manipulées de manière identique. Exemple : Tous les appareils électriques peuvent être allumés ou éteint Tous les objets comestibles peuvent être mangés Tous les objets lumineux éclairent François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Définition d’Interface Une interface est donc la description d’un ensemble des procédures (méthodes) que les classes Java peuvent mettre en oeuvre. Les classes désirant appartenir à la catégorie ainsi définie déclareront qu'elles implémentent cette interface, fourniront le code spécifique des méthodes déclarées dans cette interface. Cela peut être vu comme un contrat entre la classe et l’interface la classe s’engage à implémenter les méthodes définies dans l’interface François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Codage d’une interface en Java Mot réservé : interface Dans un fichier nom_interface.java, on définit la liste de toutes les méthodes de l’interface interface nomInterface { type_retour methode1(paramètres); type_retour methode2(paramètres); … } Les méthodes d'une interface sont abstraites : elles seront écrites spécifiquement dans chaque classe implémentant l’interface Le modificateur abstract est facultatif. François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Implémentation d’une interface dans une classe Mot réservé : implements La classe doit expliciter le code de chaque méthode définie dans l’interface class MaClasse implements nomInterface { … type_retour methode1(paramètres) {code spécifique à la méthode1 pour cette classe}; … } François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Exemple d’Interface (1) interface Electrique { void allumer(); void eteindre(); } class Radio implements Electrique { // ... void allumer() {System.out.println(« bruit »);} void eteindre() {System.out.println(« silence »);} class Ampoule implements Electrique { // ... void allumer() {System.out.println(« j’éclaire »);} void eteindre() {System.out.println(« plus de lumière»);} } François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Exemple d’Interface (2) // … Ampoule monAmpoule = new Ampoule(); Radio maRadio = new Radio(); Electrique c; Boolean sombre; if(sombre == true) c = monAmpoule; else c = maRadio; c.allumer(); … c.eteindre(); François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Utilisation des interfaces Une variable peut être définie selon le type d’une interface Une classe peut implémenter plusieurs interfaces différentes L’opérateur instanceof peut être utilisé sur les interfaces Exemple : interface Electrique … interface Lumineux … class Ampoule implements Electrique, Lumineux … Electrique e; Object o = new Ampoule(); if (o instanceof Electrique) {e=(Electrique)o;e.allumer();} François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr

Conclusion sur les interfaces Un moyen d’écrire du code générique Une solution au problème de l’héritage multiple Un outil pour concevoir des applications réutilisables François Bonneville - Laboratoire d'Informatique de Besançon - www.bonneville.nom.fr