UE 2I002 (ex LI230) : éléments de programmation par objets avec Java. TD7 - Héritage et classe abstraite. Juliana Silva Bernardes

Documents pareils
Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

TD/TP PAC - Programmation n 3

Projet de programmation (IK3) : TP n 1 Correction

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

Programmation par les Objets en Java

Objets et Programmation. origine des langages orientés-objet

Héritage presque multiple en Java (1/2)

Programmer en JAVA. par Tama

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Java Licence Professionnelle CISII,

Programmation Par Objets

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

Bases Java - Eclipse / Netbeans

TD/TP PAC - Programmation n 3

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Auto-évaluation Programmation en Java

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Design patterns. Design patterns - définition. Design patterns - avantages

Chapitre VI- La validation de la composition.

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Langage Java. Classe de première SI

Programmation avec des objets : Cours 7. Menu du jour

Facultés Universitaires Notre-Dame de la Paix. Conception et Programmation Orientées- Object

Support de cours et TD Programmation Orientée Objet

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

TP1 : Initiation à Java et Eclipse

Initiation à JAVA et à la programmation objet.

2. Comprendre les définitions de classes

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Chapitre 10. Les interfaces Comparable et Comparator 1

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

INITIATION AU LANGAGE JAVA

Développement Logiciel

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Cours 1: Java et les objets

RMI le langage Java XII-1 JMF

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Une introduction à Java

Architecture Orientée Service, JSON et API REST

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Diagramme de classes

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Programme Compte bancaire (code)

Tp 1 correction. Structures de données (IF2)

JADE : Java Agent DEvelopment framework. Laboratoire IBISC & Départ. GEII Université & IUT d Evry nadia.abchiche@ibisc.univ-evry.

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Premiers Pas en Programmation Objet : les Classes et les Objets

Corrigé des exercices sur les références

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Programmation Orientée Objet application au langage Java Version Novembre 2007

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Généralités sur le Langage Java et éléments syntaxiques.

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

PROGRAMMATION PAR OBJETS

Programmation Orientée Objet

Package Java.util Classe générique

Exercices sur les interfaces

Génie Logiciel avec Ada. 4 février 2013

Programmation Objet Java Correction

Synchro et Threads Java TM

Programmation Orientée Objet

Programmation en Java IUT GEII (MC-II1) 1

Classe Interne, Anonyme & Enumération

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

Environnements de développement (intégrés)

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

GOL502 Industries de services

1 Définition d une classe en Java

Web Tier : déploiement de servlets

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

FICHES TECHNIQUES. tel:

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

F. Barthélemy. 17 mai 2005

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

4. Groupement d objets

LOG4430 : Architecture logicielle et conception avancée

Applet pour visualiser les variables «automate» notifiées

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Ingénérie logicielle dirigée par les modèles

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Les frameworks au coeur des applications web

UML. Diagrammes de classes (suite) Delphine Longuet.

TD2 Programmation concurrentielle

Analyse,, Conception Objet

Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier

Programmation Objet II

Utiliser Java sans BlueJ

Remote Method Invocation Les classes implémentant Serializable

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Java c est quoi? Java pourquoi?

Transcription:

UE 2I002 (ex LI230) : éléments de programmation par objets avec Java!! TD7 - Héritage et classe abstraite Juliana Silva Bernardes juliana.silva_bernardes@upmc.fr

Sumary Héritage Classes et méthodes abstracts Redéfinition de méthodes existantes 2

Héritage Organize les classes de manière hiérarchique. 3

public class Instrument{! protected double poids; protected double prix; public Instrument(double poids, double prix){ this.poids = poids; this.prix = prix; //@Override vous oblige de redefinir correctement la method tostring @Override public String tostring() { return "Instrument [poids="+ poids + ", prix=" + prix +"]"; 4

public class Guitare extends Instrument{ public Guitare(double poids, double prix){ super (poids, prix); public void jouer() { System.out.println("La guitare joue!"); public class Trompette extends Instrument{ public Trompette(double poids, double pri super (poids, prix); public void jouer() { System.out.println("La Trompette joue!" public class Piano extends Instrument{ public Piano(double poids, double prix){ super (poids, prix); public void jouer() { System.out.println("Le Piano joue!"); 5

Héritage public class Orchestre{ private int nmax; private Instrument [] tabinst; private int numins; public Orchestre(int nmax){ this.nmax = nmax; numins = 0; tabinst = new Instrument[nmax]; public void ajouterinstrument(instrument i) { tabinst[numins] = i; numins++; public void jouer() { for (int i = 0; i< numins; i++){ tabinst[i].jouer(); 6 Quel est le problème dans le code actuel? Pas de méthode jouer dans la classe mère instrument.

Classes et méthodes abstracts public class Instrument{ protected double poids; protected double prix;! public Instrument(double poids, double prix){ this.poids = poids; this.prix = prix; @Override public String tostring() { return "Instrument [poids="+ poids + ", prix=" + prix +"]"; public void jouer() { Une solution plus jolie sont les methodes abstract 7

Classes et méthodes abstracts public abstract class Instrument{ protected double poids; protected double prix;! public Instrument(double poids, double prix){ this.poids = poids; this.prix = prix; @Override public String tostring() { return "Instrument [poids="+ poids + ", prix=" + prix +"]"; public abstract void jouer(); 8

Classes et méthodes abstracts Les méthodes abstract Seulement dans les classes abstracts Contient une signature mais pas de code public abstract void jouer(){ public abstract void jouer(); Les classes abstract Ne peut pas être instancié Permet de factoriser du code pour toutes les classes qui hériteront Notion de contrat : toutes les classes filles devront gérer ce qui est décidé par la classe mère (signature de méthode abstraite) 9

Classes et méthodes abstracts Les classes doivent soit être déclarée abstraite, soit définir le corps de méthodes abstracts : surface() et affiche(). 10

Redéfinition de méthodes existantes public abstract class A{ protected int x; public A (int x){ this.x =x; public abstract void ma(); public class B extends A{ public B (int x){ super(x); public void mb(){ La classe B doit redefinir la method ma ou être declarer come abstract public class B extends A{ public B (int x){ super(x); public void mb(){ public void ma(){ ou public abstract class B extends A{ public B (int x){ super(x); public void mb(){ 11