Langages de programmation TP10

Slides:



Advertisements
Présentations similaires
Leçon 3 : Héritage IUP 2 Génie Informatique
Advertisements

Chapitre III Héritage (début)
Introduction au paradigme orienté-objet (suite)
C++ L’HERITAGE Fayçal BRAÏKI DUT INFORMATIQUE.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
Commerce électronique Automne  Introduction  Création du panier d’achats  Migration du panier d’achats  Conclusion.
UML EPITECH 2009 UML1 - Introduction UML – Définition – Historique – UML en entreprise – Couverture Concepts – Objet – Classe –
Recherche des fonctions pour la rédaction de l'expression fonctionnelle du besoin à l'aide d'un outil graphique : Le diagramme des inter-acteurs. Le diagramme.
Les systèmes d'information 1- Une pratique quotidienne 2- Les données 3- Approche conceptuelle 4- Notion de serveur 5- Conception d'un système d'information.
1- Régles de normalisation 2ème partie : normalisation Modèle Conceptuel des Données 2- Les Formes Normales 3- Dépendances Fonctionnelles 4- Recap - Méthodologie.
Stéphane Frénot, Frederique Laforest, Frédéric Le-Mouël IJA 1 TD 6 IJA Structures de données JAVA.
1 Programmation en C++ Fonctions ● Déclaration et définition de fonctions ● Arguments ● Surcharge ● Arguments optionnels ● Fonctions constantes ● Fonctions.
WIKITTY Base de données orientée documents et API de persistance pour Java.
Comptabilité et gestion: Plan général Séance 1) introduction, début de la comptabilité générale: le bilan Séance 2) Comptabilité Générale: le compte de.
Classes, objets, séquences, communication, états
Utilisation des signaux sonores et lumineux
Langages de programmation TP6
Système d’aide à la décision Business Intelligence
Les Bases de données Définition Architecture d’un SGBD
Initiation à la conception des systèmes d'informations
Notes 7.2 La masse volumique, la flottabilité et les fluides
Modèle objet : les classes
java : l'héritage (rappel)
Environnement de développement des BD
Programmation en C++ Héritage
4 Modèle conceptuel de données MCD
Environnement du développement de BD ORACLE REPORTS 10g
Pas de variable globale
Les notions de classe et d'objet
Modélisation Statique
7.1 Transformation linéaire
Langages de programmation TP7
JAVA et POO : Notion d'héritage
GOBO Ne pas partir de zéro
La paie Définition : Un salaire est une somme d'argent versée à un employé, en échange il fournit un travail. Le montant du salaire versé dépend du contrat.
Cyber-Sphinx Séance 2.
Langages de programmation TP3
Diagramme de classe UML et C++
Les interfaces en PHP.
Réalisation d’une application web sous le thème: «Mon vétérinaire » par : Benzineb Asmaa et Meftahi Oualid Présentation à Université Saad Dahlab Blida.
Bonnes pratiques Orienté Objet et Java
Programmation en C++ C++ de base
Structure D’une Base De Données Relationnelle
Modélisation avec UML 2.0 Partie II Diagramme de classes.
Programmation Orientée Objet C# El Akel Bouchra ISMONTIC Tanger 2013/2014.
Développement d’applications interactives
1 Copyright © 2004, Oracle. Tous droits réservés. Extraire des données à l'aide de l'instruction SQL SELECT.
LE PRÉLÈVEMENT À LA SOURCE
© Robert Godin. Tous droits réservés.
Les classes et les objets
Programmation Android Les listes
Les cas d’utilisation 420-KE2-LG.
Paradigme Orienté Objet
Langages de programmation TP11
La puissance du transfert d’énergie électrique entre un générateur et un circuit constitué de conducteurs ohmiques dépend-elle de ces conducteurs ohmiques.
DESIGN PATTERN BUILDER KADRI LOUBNA CHARMATI SEWSEN.
LE PRÉLÈVEMENT À LA SOURCE
Chapitre 1 Formulation d’un programme linéaire (PL) Georges Abboudeh BUST 347.
Exercice 1 Objectif : Définir une classe avec un constructeur et créer une instance de cette classe. La classe Habitation comprend les attributs : proprietaire.
PRESENTATION ACCESS Editeur : Microsoft Environnement Windows (SE)
Principes de programmation (suite)
INTERFACE ET POLYMORPHISME
Retour sur les interfaces
© Robert Godin. Tous droits réservés.
TP N°1 : GUI en NetBeans Module R & C Université de Jijel
Boulain Joris, Handouz Yassine, Regnier Fabien, Giraud Antoine
Contenu Systèmes de test parallèles Multithreading Synchronisation
DONNÉE DE BASE QM Manuel de formation. Agenda 2  Introduction  Objectif de la formation  Données de base QM: Caractéristique de contrôle Catalogue.
PROJET R.A.N. LES FRACTIONS.
Transcription de la présentation:

Langages de programmation TP10 Prof. Maria-Iuliana Dascălu Assist. Iulia-Cristina Stănică iulia.stanica@gmail.com

Objectifs pour aujourd’hui héritage polymorphisme surcharge (overloading) vs sous-typage (overriding) diagrammes UML

Les relations entre les classes - rappel 1. L’association - C'est une simple relation d'utilisation 2. La dépendance Relation d’utilisation unidirectionnelle => la modification d’un objet dont on dépend cause la mise a jour de l’autre élément 3. L’agrégation Une association particulière où une classe est une partie d'une autre classe (un ensemble d’éléments) 4. La composition - Une agrégation forte (si un élément est détruit => ses composants sont aussi détruits) 5. L’héritage (Spécialisation & Généralisation) - une classe hérite des caractéristiques d'une autre classe

L’héritage

L’héritage Spécialisation Démarche descendante, qui consiste à capturer les particularités d'un ensemble d'objets. Consiste à étendre les propriétés d'une classe, sous forme de sous-classes, plus spécifiques. Généralisation Démarche ascendante, qui consiste à capturer les particularités communes d'un ensemble d'objets, issus de classes différentes. Consiste à factoriser les propriétés d'un ensemble de classes, sous forme d'une super classe, plus abstraite. Exprimées par héritage en Java

L’héritage Une sous-classe hérite / étend les champs et les méthodes (qui ne sont pas privés) d'une superclasse: Ajoute de nouveaux champs / méthodes; Modifie des champs / méthodes; Mot réservé en Java pour désigner l'héritage: extends En Java, une classe peut hériter un seul super-classe

L’heritage- Java public class Animal { public Animal { } System.out.println("A new animal has been created!"); } public void sleep() { System.out.println("An animal sleeps..."); public void eat() { System.out.println("An animal eats...");

L’heritage - Java public class Bird extends Animal { public Bird() { } super(); System.out.println("A new bird has been created!"); } @Override public void sleep() { System.out.println("A bird sleeps..."); public void eat() { System.out.println("A bird eats...");

Constructeurs Le constructeur de la sous-classe appelle toujours le constructeur de la superclasse, explicitement ou implicitement Pour éviter les erreurs de compilation, nous avons plusieurs possibilités: Dans le constructeur de la sous-classe, nous devons appeler explicitement l'un des constructeurs de la super-classe (en utilisant le mot-clé super) Insérez le constructeur sans paramètres dans la super-classe (car il est appelé implicitement par le constructeur de la sous-classe)

Polymorphisme Def: la caractéristique d'une entité d'avoir des significations différentes, selon le contexte. Exemples de polymorphisme: constructeurs surchargés des méthodes surcharges le sous-typage

Surcharge (overloading) vs Substitution (overriding) nous avons plus des méthodes avec le même nom dans la même classe, mais des paramètres differents; a lieu lors de la compilation => polymorphisme statique; Substitution: nous redéfinissons les méthodes de la super classe dans les sous-classes, en gardant le même nom, mais en changeant la mise en œuvre annotation: @Override, avant la methode a lieu lors d'exécution=> polymorphisme dynamique;

Exercices 1)

Exercices 1) Considérez les formules suivantes: Dans la classe Test, créez trois objets de type Cylindre qui seront ajoutés dans un ArrayList. Trouvez le volume maximum.

2)

2) Pour calculer le salaire net: - pour l'employé : les charges salariales seront payées; ensuite il va payer l'impôt sur le revenu - pour le programmeur: il ne paiera que les charges salariales - pour le Manager: la méthode de calcul du salaire net similaire a celle de l‘employé sera utilisée, mais il va aussi payer des taxes pour la prime taxe - des taxes pour la santé, le chômage, la pension (charges salariales)

Devoir Une banque offre des prêts à toutes les personnes qui veulent acheter des appartements ou des produits à usage domestique. Un prêt est identifié par un numéro unique, les données du débiteur (noms, prénom et adresse), et d'autres données concernant le prêt comme : la somme de la dette (qui est égale au coût de l’objet), le versement et la fréquence des paiements. Par défaut, le versement de paiement est égal à 10% du coût de l’objet (appartement ou produit utilisé à usage domestique) et le paiement doit être effectué chaque mois. Mais le débiteur peut choisir une autre fonction de fréquence de type prêt. Si le débiteur veut acheter un appartement, il / elle peut choisir un paiement trimestriel, mais la banque va ajouter au versement un commission de 3% du versement. Si le débiteur veut acheter un produit à usage domestique, il / elle peut choisir un paiement semestriel mais dans ce cas, la banque va ajouter un commission de 7% au versement. Le programme doit afficher chaque fois la quantité d'argent que le débiteur doit payer. Au début, ce montant est égal au prêt et est mis à jour chaque fois que le débiteur paie un versement : lorsque le payInstalment() méthode est appelée (instalment=versement). Le modèle du programme est présenté dans la diagramme suivante :

Devoir

Mettez en œuvre les classes du modèle. Afin de tester ces classes, écrivez la classe LoanTest avec la méthode principale qui effectue la tâche suivante : - Créez deux prêts, un pour un appartement et l'autre pour une utilisation d’un produit à usage domestique (un objet appartient à la classe ApartmentLoan et l’autre à la classe HouseholdProductLoan). Nous supposons que le deuxième débiteur a choisi le paiement semestriel. - Appliquez les méthodes computeInstalment() et payInstalment(). - Affichez toutes les informations pertinentes des deux prêts.