Conception et Programmation par Objets GLIN404. Langages et paradigmes de programmation



Documents pareils
Diagramme de classes

TP1 : Initiation à Java et Eclipse

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

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

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

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

UML (Diagramme de classes) Unified Modeling Language

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

IFT2255 : Génie logiciel

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

UML. Diagrammes de classes (suite) Delphine Longuet.

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

Programmer en JAVA. par Tama

Université de Bangui. Modélisons en UML

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

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

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

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Langage Java. Classe de première SI

GOL502 Industries de services

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

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

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

INITIATION AU LANGAGE JAVA

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

UML et les Bases de Données

Une introduction à Java

Initiation à JAVA et à la programmation objet.

Java c est quoi? Java pourquoi?

3. UML - Unified Modeling Language Diagrammes statiques

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

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Premiers Pas en Programmation Objet : les Classes et les Objets

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

OCL - Object Constraint Language

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

Chapitre VI- La validation de la composition.

Chapitre 2. Classes et objets

Auto-évaluation Programmation en Java

Cours 1: Java et les objets

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

Recherche dans un tableau

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

Générer du code à partir d une description de haut niveau

Chapitre I : le langage UML et le processus unifié

as Architecture des Systèmes d Information

Traduction des Langages : Le Compilateur Micro Java

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Compte-rendu de projet de Système de gestion de base de données

Programmation en Java IUT GEII (MC-II1) 1

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

La technologie Java Card TM

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

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

LES TYPES DE DONNÉES DU LANGAGE PASCAL

UE Programmation Impérative Licence 2ème Année

Introduction au langage C

TD/TP PAC - Programmation n 3

Les frameworks au coeur des applications web

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

Application web de gestion de comptes en banques

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Corrigé des exercices sur les références

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

TD/TP PAC - Programmation n 3

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Information utiles. webpage : Google+ : digiusto/

Utilisation d objets : String et ArrayList

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

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

Apprendre Java en 154 minutes

4. Groupement d objets

Conception des bases de données : Modèle Entité-Association

Programmation Orientée Objet en C#

Plan du cours. Historique du langage Nouveautés de Java 7

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

TD3: tableaux avancées, première classe et chaînes

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Développement Logiciel

Bases de Données. Plan

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

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

BASES DE DONNEES ORIENTEES OBJETS BDA10.1

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

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

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

Programmation avec des objets : Cours 7. Menu du jour

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

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

INF 321 : mémento de la syntaxe de Java

Génie logiciel pour le commerce électronique Hiver 2003 Prof.: Julie Vachon

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Les chaînes de caractères

Chapitre 07 Le modèle relationnel des données

Transcription:

Conception et Programmation par Objets GLIN404 Marianne Huchard, Clémentine Nebut LIRMM / Université de Montpellier 2 2013 Langages et paradigmes de programmation Le raisonnement classicatoire paradigme de programmation : une approche pour dénir, organiser, utiliser la connaissance. Principaux paradigmes Programmation fonctionnelle, centrée sur une décomposition en fonctions (scheme, camel) Programmation impérative, centrée sur une structuration séquentielle des traitements (pascal, C) Programmation objet, centrée sur les données associées à leurs comportements (C++, Java) Identication d'objets de base (Estelle, la voiture d'estelle) Utilisation de ces objets comme des prototypes (la voiture d'estelle vue comme une voiture caractéristique, à laquelle ressemblent les autres voitures, moyennant quelques modications) modèles et langages à prototypes Regroupement des objets partageant des propriétés structurelles et comportementales en classes modèles et langages à classes Classes Encapsulation des données Concept du domaine sur lequel porte : le logiciel voiture ou compte bancaire le domaine du logiciel un type de données abstrait tel que la pile Une classe peut se voir selon trois points de vue : un aspect extensionnel : l'ensemble des objets (ou instances) représentés par la classe, un aspect intensionnel : la description commune à tous les objets de la classe, incluant les données (partie statique ou attributs) et les opérations (partie dynamique), un aspect génération : la classe sert à engendrer les objets. Methodes Attributs (Donnees)

Les classes et instances en UML Modèle statique (ou structurel) Diagrammes d'objets ou diagrammes d'instances objets du domaine modélisé ou de la solution informatique (par exemple des personnes, des comptes bancaires) liens entre ces objets (par exemple le fait qu'une personne possède un compte bancaire) ; Diagrammes de classes abstraction des diagrammes d'objets classes, associations, attributs, opérations Représentation des classes Les énumérations Un type de données dont on peut énumérer toutes les valeurs possibles Exemples : Civilité Mme, M, Mlle Stations de ski du grand domaine Valmorel, Combelouvière, Saint-François-Longchamp Niveaux à l'école primaire CP, CE1, CE2, CM1, CM2 Pour ranger les classes : les paquetages Les paquetages en UML regroupement logique d'éléments UML, par exemple de classes structuration d'une application utilisés dans certains langages, notamment Java, ce qui assure une bonne traçabilité de l'analyse à l'implémentation liés par des relations de dépendance Figure: Paquetages en UML

Instances et classes en notation UML Attributs Voiture type : string marque : string couleur : string nbrroues : int =4 {cst} titine :Voiture type =205 Peugeot rouge Quelles informations pour décrire un attribut? Principalement : son nom son type sa visibilité (qui peut le voir/l'utiliser?) la multiplicité (combien de valeurs sont portées simultanément par l'attribut?) Figure: Classe (à gauche) et objet/instance (à droite) [visibilité][/]nom[:type][[multiplicité]][= valeurpardéfaut] visibilité {+,, #, }, et multiplicité dénit une valeur (1, 2, n,...) ou une plage de valeurs (1..*, 1..6,...). visibilité : d'où est visible l'attribut? Public. + est la marque d'un attribut accessible partout (public) Privé. - est la marque d'un attribut accessible uniquement par sa propre classe (privé) Package. est la marque d'un attribut accessible par tout le paquetage Protected. # est la marque d'un attribut accessible par les sous-classes de la classe le nom est la seule partie obligatoire de la description [visibilité][/]nom[:type][[multiplicité]][= valeurpardéfaut] la multiplicité décrit le nombre de valeurs que peut prendre l'attribut (à un même moment) le type décrit le domaine de valeurs la valeur initiale décrit la valeur que possède l'attribut à l'origine des propriétés peuvent préciser si l'attribut est constant ({constant}), si on peut seulement ajouter des valeurs dans le cas où il est multi-valué ({addonly}), etc. Attributs de classe Valeur partagée par toutes les instances Classe Attributs de classe Instance Valeurs d'attributs (État) Sauf des attributs de classe Voiture titine :Voiture Figure: Détails sur la syntaxe de description des attributs type : string marque : string couleur : string nbrvoitures : int nbrroues : int =4 {cst} type =205 Peugeot rouge Attribut de classe ~ caractéristique partagée Révèle souvent une modélisation à approfondir Figure: Attributs de classe

Attributs dérivés Valeur déduite de la valeur d'autres attributs ou d'autres éléments décrivant l'objet Classe Attributs dérivés Instance Valeurs d'attributs (État) Personne julie:personne datenaissance : String /age : int 08/05/88 15 {age = date du jour date de naissance} Peut-être une opération déguisée? (stockage optionnel) Types de base en Java Écriture des classes boolean, constitué des deux valeurs true et false. Les opérateurs se notent : non égal diérent et alors / et ou sinon / ou Java! ==! = && & int, entiers entre 2 31 et 2 31 1 float, double, ces derniers sont des réels entre 1.79E + 308 et +1.79E + 308 avec 15 chires signicatifs. char, caractères représentés dans le système Unicode. Les constantes se notent entre apostrophes simples, par exemple 'A'. String, qui est... une classe. Les chaînes de caractères constantes se notent entre guillemets, par exemple "hello world". package exemplescours1; public class Voiture { private String type; // null private String marque; // null private String couleur; // null private static int nbrvoitures; // 0 private static final int NBR_ROUES = 4; } Conventions : le nom de la classe commence par une majuscule, le nom du package commence par une minuscule, le nom des attributs commence par une minuscule, les constantes sont en majuscules. Création des instances Accès aux attributs, aectations Déclaration d'une variable Voiture titine; Création d'une instance titine = new Voiture(); Notation '.' Exemple titine.type Ecriture de valeurs dans des attributs d'instance titine.type = "205"; titine.marque = "Peugeot"; titine.couleur = "rouge"; Ecriture de valeurs dans les attributs de classe Voiture.nbrVoitures = 3;

Petit aperçu des énumérations Prochaine étape p u b l i c enum N i v e a u { CP, CE1, CE2, CM1, CM2 ; }... Animer les objets Opérations décrivant la manière dont les objets répondent aux messages Niveau n=niveau. CP ;... Mais avant... On s'intéresse aux puzzles 2D. Leur dimension se dénit par une longueur et une largeur donnée généralement en centimètres. Ils ont un certain nombre de pièces (20, 50, 100, 1000, etc.) et en général un nom. Ils sont des reproductions d'images (photos, peintures, ou dessins). On trouve des puzzles en bois ou en carton. Réalisez un diagramme de classes pour les puzzles. Réalisez un diagramme d'objets pour un puzzle en carton, nommé Femmes au marché, de 98x75cm, étant une reproduction de peinture, et ayant 2000 pièces.