Algorithmique et U.M.L (mise à niveau)

Download Report

Transcript Algorithmique et U.M.L (mise à niveau)

CM1-1 : Initiation à la programmation
Mickaël Martin Nevot
V1.7.0
22/02/2014 18:42
Cette œuvre de Mickaël Martin Nevot est mise à disposition selon les termes de la
licence
licence Creative
Creative Commons
Commons Attribution
Attribution –- Pas d'Utilisation Commerciale –- Partage
Partage àà l'Identique
l'Identique
3.0 non transposé.
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
I. Présentation du cours
II. Init. à la prog.
III. Algo.
IV. Java
V. Java avancé
VI. Algo. avancée
VII. UML
VIII.Génie log.
Programmation orientée objet et Java
Mickaël Martin Nevot
1/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programme (informatique)
 Enchaînement d’instructions
 Écrit dans un langage de programmation
 Exécuté par des appareils informatiques
 Pour effectuer une tâche donnée
 Cycle de vie :
 Construction
 Distribution
 Utilisation (installation ?)
 Abandon (évolution rapide du marché, des modes, etc.)
Programmation orientée objet et Java
Mickaël Martin Nevot
2/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
 Conception :
 Données à traiter
 Méthode employée (algorithme)
 Résultat (données en sortie)
Données à
traiter
Traitement
Programmation orientée objet et Java
Mickaël Martin Nevot
Résultat
3/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
 Codage :
 Contraintes d’architecture (choix du langage ?)
 Langage de programmation
 Transformation du code source :
 Compilation ou interprétation
 Test (important !)
Programmation orientée objet et Java
Mickaël Martin Nevot
4/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Programmation informatique
 Conception
 Codage
 Transformation du code source
 Test
Notes
saisies
Saisie
clavier
Calculer
Moyenne
Moyenne
affichée
Affichage
écran
Lire et stocker
les données
notes
Additionner les
données notes
et stocker la
donnée somme
Diviser la donnée
somme
et stocker la
donnée moyenne
Programmation orientée objet et Java
Mickaël Martin Nevot
Afficher la
donnée
moyenne
5/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Historique
 1842 : Ada Lovelace et Charles Babbage
 1936 : machine de Turing / invention de la programmation
 1950 - 1980 : cartes perforées
 1954 : Fortan et système d’exploitation
 1970 : programmation structurée
 1980 – 1990 : programmation orientée objet (POO)
Programmation orientée objet et Java
Mickaël Martin Nevot
6/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Environnement de programmation
 Éditeur
 Compilateur :
 Vérifier la syntaxe
 Traduire en langage machine
Code source
Compilateur
Programmation orientée objet et Java
Mickaël Martin Nevot
Code binaire
7/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Qu’est-ce qu’un objet ?
Code source traditionnel
Code source orienté objet
Programmation orientée objet et Java
Mickaël Martin Nevot
8/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Qu’est-ce qu’un objet ?
Code source traditionnel
Code source orienté objet
« Un objet est une capsule logicielle oblative avec un tropisme conatif dont
l'hétéronomie est la marque de la durée, de l'éphémère et de la hoirie »
— Serge Miranda
Programmation orientée objet et Java
Mickaël Martin Nevot
9/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Pourquoi la POO ?
 Diminuer le coût d’un logiciel
 Faciliter la conception et l’évolution du code
 Augmenter la durée de vie d’un logiciel
 Augmenter la réutilisabilité d’un logiciel
 Augmenter la facilité de maintenance d’un logiciel
Conception d’un logiciel à la manière
de la fabrication d’une voiture
Programmation orientée objet et Java
Mickaël Martin Nevot
10/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Principe de la POO
 Communication inter-objets par messages
 À la réception d’un message :
 Appel d’une méthode qui modifie son état
 Appel d’une méthode qui envoie un message à son tour
Ma voiture
démarre
Programmation orientée objet et Java
Mickaël Martin Nevot
Le moteur
11/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO
 Paradigme (≠ méthodologie)
 Concept :
 Objet :



État (attributs)
Comportement (méthodes)
Identité
 Encapsulation
 Héritage
 Polymorphisme
 Langage de programmation :
 Java, C++, Ada, PHP, C#, Objective C, Python, etc.
Programmation orientée objet et Java
Mickaël Martin Nevot
12/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Objet et classe
 Objet : un concept, une idée/entité du monde physique
 Exemples : voiture, étudiant, chat, fenêtre, forme, etc.
 Classe : regroupe les objets de mêmes comportements
 Instancier : fabriquer un exemplaire d'un élément à partir
d'un modèle qui lui sert en quelque sorte de moule
 Un objet est une instance de classe
 Réification : permet de transformer ou à transposer un concept
en une entité informatique
Une classe représente une responsabilité
Programmation orientée objet et Java
Mickaël Martin Nevot
13/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
État et comportement
 État :
 Défini par l’ensemble des attributs
 Attribut, variable d’instance, donnée membre :

Variable spécifique à l’objet
 Comportement :
 Défini par l’ensemble de méthodes
 Méthode : fonctions spécifique à l’objet
 Méthodes :




Constructeur : appelé à la création de l’objet
Destructeur : appelé à la destruction d’un objet
Méthode abstraite : méthode sans code
Accesseurs et mutateurs : sert de mandataire d’accès à l’état de
l’objet depuis l’extérieur de celui-ci
Programmation orientée objet et Java
Mickaël Martin Nevot
14/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO et magie
Programmation orientée objet et Java
Mickaël Martin Nevot
15/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO et magie
Programmation orientée objet et Java
Mickaël Martin Nevot
16/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
POO : deux aspects
 Programme en cours d’écriture :
 Ensemble de classes
 Chaque classe a des attributs et des méthodes
 Programme en cours d’exécution (processus) :
 Ensemble d’objets
 Chaque objet a son état courant et un comportement
Programmation orientée objet et Java
Mickaël Martin Nevot
17/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Encapsulation
 Association de variables et fonctions dans une même entité
 L'objet est vu de l'extérieur comme une boîte noire ayant
certaines propriétés et ayant un comportement spécifié
Variables
Attribut
Variables
Attribut
Variables
Attribut
Méthode
Fonction
Méthode
Fonction
Programmation orientée objet et Java
Mickaël Martin Nevot
18/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Encapsulation : accessibilité
 Concerne : classe, constructeur, attribut et méthode
 Visibilité :
 Publique : accessible de partout et sans aucune restriction
Protégée : accessible aux classes du module (ou paquetage) et
à ses classes filles
 Privée : accessible uniquement au sein de sa classe
 Accesseurs (getters) / mutateurs (setters) :
 Permet de récupérer/modifier la valeur d’un attribut avec une
visibilité restreinte grâce à une méthode
Programmation orientée objet et Java
Mickaël Martin Nevot
19/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Héritage
 Construction d’une classe à partir d’autres classes
en partageant leurs attributs et méthodes
 Spécialisation (ou généralisation), enrichissement
 Réutilisation
Vehicle
 Redéfinition
Car
Bike
ER Vehicle
Ambulance
Programmation orientée objet et Java
Mickaël Martin Nevot
20/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Classes et sous-classes
 B hérite de A
 A est la classe mère, B la classe fille
 A est la super-classe de B
 B est une sous-classe de A
 Un objet de type B est aussi un objet de type A
 Un objet de type A n’est pas un objet de type B
A
B
Programmation orientée objet et Java
Mickaël Martin Nevot
21/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Notions générales
 Opérateurs
 Données :
 Variables ≠ attributs
 Constantes
 Valeurs littérales ("hello!", 3, 2.75, true)
 Expressions (et expressions « parenthésées »)
 Affectation ≠ condition
 Instructions
 Fonction ≠ procédure ≠ méthode (signature)
 Paramètres (formels) ≠ arguments (paramètres effectifs)
 Exécution séquentielle
Programmation orientée objet et Java
Mickaël Martin Nevot
22/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Aller plus loin
 Prototype
 Mixin
 Trait
Programmation orientée objet et Java
Mickaël Martin Nevot
23/24
Présentation du cours > Init. à la prog. > Algo. > Java > Java avancé > Algo. avancée > UML > Génie log.
V1.7.0
Crédits
Auteur
Mickaël Martin Nevot
[email protected]
[email protected]
Carte
Cartede
devisite
visiteélectronique
électronique
Relecteurs
Cours en ligne sur : mickael.martin.nevot.free.fr
Programmation orientée objet et Java
Mickaël Martin Nevot
24/24