Conception et Programmation Orientées Objet

Dimension: px
Commencer à balayer dès la page:

Download "Conception et Programmation Orientées Objet"

Transcription

1 Conception et Programmation Orientées Objet 1-Introduction générale Emmanuel Hyon Université Paris Ouest Nanterre UFR SEGMI - L2 MIA / février / 81

2 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 2 / 81

3 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 3 / 81

4 Objet de ce cours Objectif général Apprendre à penser, concevoir et programmer objet! Trame Conception : utilisation d une notation graphique Programmation : utilisation du langage Java 4 / 81

5 Références Référence bibliographique C. Delannoy. Programmer en Java. Eyrolles, I. Charon. Le langage Java. Hermes, Référence webographique Sun Microsystems. The Java Tutorials. Sun Microsystems. La Java Docs. 5 / 81

6 Modalités Séances de 3h Présence obligatoire. env. 2h de cours et 1h de TD dans les 3-5 premières séances env. 1h de cours et 2h de TD jusqu à la fin du semestre 3h de Cours/TD (alternance plus rapide entre théorie et pratique) vers la fin du semestre selon votre progression Évaluation Un devoir à rendre (projet et/ou TD) Un contrôle continu Un examen (50%) 6 / 81

7 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 7 / 81

8 Notion d «Objet» Qu est-ce qu un objet? C est un concept servant à représenter, modéliser toute entité décrite selon ses propriétés et son comportement. Ce comportement s observe via les interactions que le monde extérieur peut avoir avec cette entité. Les interactions sont sollicitées à travers les opérations de l objet. 8 / 81

9 Example d objet 9 / 81

10 Example d objet 10 / 81

11 Avant-propos Conception oriente e objet Programmation proce durale Programmation oriente e objet POO avec Java Example d objet 11 / 81

12 Example d objet 12 / 81

13 Example d objet 13 / 81

14 Example d objet 14 / 81

15 Example d objet r O 15 / 81

16 Caractérisation simple d une personne Exemple Une personne est caractérisée par son prénom, son nom de famille, son sexe, sa date de naissance, son lieu de naissance, sa profession : ce sont ses propriétés. Une personne peut exécuter les opérations suivantes : se réveiller, se lever, marcher, courir, sauter, s asseoir, dormir, manger, lire, écrire, parler (dire son âge), se taire, / 81

17 Modèle textuel simple des objets de type «Personne» Classe : Déclaration de type nom = Personne Propriétés : Déclaration de propriétés nom = prénom ; type de donnée = Chaîne nom = nom de famille ; type de donnée = Chaîne nom = sexe ; type de donnée = Chaîne nom = date de naissance ; type de donnée = Date nom = lieu de naissance ; type de donnée = Chaîne nom = profession ; type de donnée = Chaîne Opérations : comportement des objets de type Personne nom = âge ; type de retour = Entier nom = marcher ; type de retour = Rien nom = dormir ; type de retour = Rien nom = se réveiller ; type de retour = Rien / 81

18 Modèle graphique simple des objets de type «Personne» Classe Personne prénom: Chaine nom: Chaîne sexe: Chaîne datenaissance: Date lieunaissance: Chaîne profession: Chaîne age(): Entier marcher() dormir() seréveiller() Nom de la classe Propriétés Opérations Notation graphique utilisée : Diagramme de classe Notation simplifiée, nous utiliserons un sous-ensemble et l approfondirons progressivement Trois compartiments : nom de la classe, propriétés et opérations. 18 / 81

19 Caractérisation simple d un point du plan cartésien Exemple Un point est caractérisé par son abscisse (x) et son ordonnée (y) : ce sont ses propriétés. On peut exécuter les opérations suivantes sur un point : est-il à l origine des axes? translation vers un autre point selon un delta (dx, dy), distance d un autre point. 19 / 81

20 Modèle textuel simple des objets de type «Point» Classe : Déclaration de type nom = Point Propriétés : Déclaration de propriétés nom = x ; type de donnée = Entier nom = y ; type de donnée = Entier Opérations : comportement des objets de type Point nom = estorigine ; type de retour = Booléen nom = translater(dx : Entier, dy : Entier) ; type de retour = Rien nom = distance(p : Point) ; type de retour = Réel 20 / 81

21 Modèle graphique simple des objets de type «Point» Classe Point x: Entier y: Entier estorigine(): Booléen translater(dx: Entier, dy: Entier) distance(p: Point): Réel Nom de la classe Propriétés Opérations 21 / 81

22 Caractérisation simple d une sphère r O Possède deux propriétés : son rayon r et son centre O, qui est un objet de type Point Connaissant r, on peut calculer sa surface (S = 4πR 2 ) Connaissant r, on peut calculer son volume (V = 4 3 πr3 ) 22 / 81

23 Modèle textuel simple des objets de type «Sphère» Classe : Déclaration de type nom = Sphère Propriétés : Déclaration de propriétés nom = rayon ; type de donnée = Réel ; valeur par défaut = 0 nom = centre ; type de donnée = Point ; valeur par défaut = Point(0, 0) Opérations : comportement des objets de type Sphère nom = surface ; type de retour = Réel nom = volume ; type de retour = Réel surface et volume ne possèdent pas de paramètres formels (sous l hypothèse que r est connu au sein des objets de type «Sphère»). 23 / 81

24 Modèle graphique simple des objets de type «Sphère» Classe Sphère rayon: Réel centre: Point surface(): Réel volume(): Réel Nom de la classe Propriétés Opérations 24 / 81

25 Notion de «Classe» Qu est-ce qu une classe? C est un concept orienté objet destiné à modéliser formellement des objets d un certain type d entité. La classe décrit les propriétés et les opérations des objets du type d entité qu il représente. Exemple La classe Sphère dont la description graphique a été donnée dans la diapositive précédente décrit les objets de type «Sphère». 25 / 81

26 «Un» objet de type Sphère Objet : Déclaration d une instance type = Sphère Propriétés : Initialisation des propriétés rayon = 3,5 ; (Positionné à la création de cet objet) centre = Point(2,6) ; (Positionné à la création de cet objet) À l invocation des opérations : (on suppose que r n a pas changé) surface = 153,938 volume = 179,594 Cet objet est une instance de la classe Sphère. On peut en avoir d autres. 26 / 81

27 Apparence de «différents objets» de type Sphère O r O r O r... Ce sont des instances de la classe Sphère. 27 / 81

28 Avant-propos Conception oriente e objet Programmation proce durale Programmation oriente e objet POO avec Java Apparence de «diffe rentes instances» de Personne 28 / 81

29 Schéma simplifiée d instances de Personne Personne Barack Obama instance de prénom nom sexe datenaissance lieunaissance profession instance de Michael Hall Hillary Clinton instance de seréveiller âge marcher dormir 29 / 81

30 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 30 / 81

31 Comment programmer «Sphère» en C? Programmation structurée, procédurale Dans un premier temps, nous allons tout mettre dans un main Affichage de la surface et du volume après invocation de l exécutable du programme, avec le rayon en argument. Exemple d invocation :./sphere 3.5 NB : dans les programmes suivants, nous faisons abstraction du centre de la sphère, pour garder chaque programme lisible sur une page. y Laissé en exercice : complétez avec la définition du centre. 31 / 81

32 1 /* 2 * \file: sphere.c 3 * \author: lom 4 * \brief Calcul de la surface et du volume d'une sphère étant donné son rayon. 5 */ 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <math.h> #define PI int main(int argc, char** argv) { 15 double rayon = 0; 16 int nb_assigned; if (argc!= 2) { 19 /* argv[0] est le nom du programme */ 20 printf("usage: %s rayon\n", argv[0]); 21 } else { 22 nb_assigned = sscanf(argv[1], "%lf", &rayon); 23 if (nb_assigned == 1) { 24 printf("rayon lu = %g\n", rayon); 25 printf("surface = %g\n", 4.0 * PI * pow(rayon, 2)); 26 printf("volume = %g\n", (4.0 / 3.0) * PI * pow(rayon, 3)); 27 } else { 28 printf("rayon non extrait"); 29 } 30 } 31 return (EXIT_SUCCESS); 32 }

33 Où sont les notions de classe et d objet? Tout est mélangé dans un programme principal... La propriété rayon est symbolisée par la variable rayon. On ne la distingue pas des autres variables. Les opérations sont à peine décelables dans des printf (lignes 28 et 29) Aucune notion de classe et d objet!! 33 / 81

34 1 /* 2 * \file: sphere.c 3 * \author: lom 4 * \brief Calcul de la surface et du volume d'une sphère étant donné son rayon. 5 */ 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <math.h> #define PI int main(int argc, char** argv) { 15 double rayon = 0; propriété 16 int nb_assigned; if (argc!= 2) { 19 /* argv[0] est le nom du programme */ 20 printf("usage: %s rayon\n", argv[0]); 21 } else { opérations 22 nb_assigned = sscanf(argv[1], "%lf", &rayon); 23 if (nb_assigned == 1) { 24 printf("rayon lu = %g\n", rayon); 25 printf("surface = %g\n", 4.0 * PI * pow(rayon, 2)); 26 printf("volume = %g\n", (4.0 / 3.0) * PI * pow(rayon, 3)); 27 } else { 28 printf("rayon non extrait"); 29 } 30 } 31 return (EXIT_SUCCESS); 32 }

35 Peut-on améliorer ce programme en C? Demander interactivement à l utilisateur la valeur du rayon Calculer la surface et le volume dans des fonctions retournant leur valeur Décrire une sphère dans une structure et déclarer un type sur cette structure y Au passage, idem pour le type Point (laissé en exercice... ) Structurer l ensemble du programme dans un header (.h) et une implémentation (.c) 35 / 81

36 1 /* 2 * \file sphere_struct.h 3 * \author lom 4 * \brief définition d'une interface pour une structure sphere. 5 * Fonctions de calcul de la surface et du volume. 6 */ 7 8 #ifndef _SPHERE_STRUCT_H 9 #define _SPHERE_STRUCT_H #define PI #define MAX_CHAR typedef char CHAINE[MAX_CHAR]; typedef enum { 17 faux, vrai 18 } BOOLEEN; typedef struct sphere { 21 double rayon; 22 } SPHERE, *POINTEUR_SPHERE; extern double surface(double r); extern double volume(double r); #endif /* _SPHERE_STRUCT_H */

37 1 /* 2 * \file sphere_struct.c 3 * \author lom 4 * \brief Implémentation des fonctions de sphere_struct 5 */ 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <math.h> #include "sphere_struct.h" double surface(double r) { 14 return 4.0 * PI * pow(r, 2); 15 } double volume(double r){ 18 return (4.0 / 3.0) * PI * pow(r, 3); 19 }

38 1 /* 2 * \file sphere_main.c 3 * \author lom 4 * \brief programme principal pour calculer surface et volume d'une sphere 5 * selon son rayon saisi par l'utilisateur. Utilise l'interface sphere_struct. 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> #include "sphere_struct.h" int main(int argc, char** argv) { 14 POINTEUR_SPHERE ps = NULL; 15 CHAINE saisie; 16 int nb_assigned = 0; 17 double r = 0.0; 18 BOOLEEN stop = faux; do { 21 printf("entrez le rayon (nb reel) d'une sphere (-1 pour quitter) : "); 22 fgets(saisie, MAX_CHAR, stdin); 23 nb_assigned = sscanf(saisie, "%lf", &r); 24 if (nb_assigned == 1) { 25 if ((int) r == -1) { 26 stop = vrai; 27 } else { 28 if (ps == NULL){ 29 ps = malloc(sizeof(*ps)); 30 } 31 ps->rayon = r; 32 printf("rayon lu = %g\n", ps->rayon); 33 printf("surface = %g\n", r >=0.0? surface(ps->rayon) : 0); 34 printf("volume = %g\n", r >= 0.0? volume(ps->rayon) : 0); 35 } 36 } 37 } while (!stop); 38 if (ps!= NULL){ 39 free(ps); 40 } 41 return (EXIT_SUCCESS); 42 }

39 Où sont les notions de classe et d objet? La classe est vaguement définie dans le.h Un typedef sur une structure représente l entité Sphere La propriété rayon est représentée par le champ rayon Les opérations sont spécifiées par les fonctions surface et volume Elles n appartiennent pas au type SPHERE Dans le programme sphere_main.c, il n y a pas de notion d instance d une sphère (malloc). Toujours pas de notion claire de classe et d objet! 39 / 81

40 1 /* 2 * \file sphere_struct.h 3 * \author lom 4 * \brief définition d'une interface pour une structure sphere. 5 * Fonctions de calcul de la surface et du volume. 6 */ 7 8 #ifndef _SPHERE_STRUCT_H 9 #define _SPHERE_STRUCT_H #define PI #define MAX_CHAR typedef char CHAINE[MAX_CHAR]; typedef enum { 17 faux, vrai 18 } BOOLEEN; typedef struct sphere { 21 double rayon; 22 } SPHERE, *POINTEUR_SPHERE; propriété extern double surface(double r); opérations 26 extern double volume(double r); #endif /* _SPHERE_STRUCT_H */ type de donnée

41 1 /* 2 * \file sphere_struct.c 3 * \author lom 4 * \brief Implémentation des fonctions de sphere_struct 5 */ 6 7 #include <stdio.h> 8 #include <stdlib.h> 9 #include <math.h> #include "sphere_struct.h" double surface(double r) { 14 return 4.0 * PI * pow(r, 2); 15 } double volume(double r){ 18 return (4.0 / 3.0) * PI * pow(r, 3); 19 } ces fonctions implémentées ici «n'appartiennent» pas au type SPHERE

42 1 /* 2 * \file sphere_main.c 3 * \author lom 4 * \brief programme principal pour calculer surface et volume d'une sphere 5 * selon son rayon saisi par l'utilisateur. Utilise l'interface sphere_struct. 6 */ 7 8 #include <stdio.h> 9 #include <stdlib.h> #include "sphere_struct.h" int main(int argc, char** argv) { 14 POINTEUR_SPHERE ps = NULL; 15 CHAINE saisie; 16 int nb_assigned = 0; 17 double r = 0.0; 18 BOOLEEN stop = faux; do { 21 printf("entrez le rayon (nb reel) d'une sphere (-1 pour quitter) : "); 22 fgets(saisie, MAX_CHAR, stdin); 23 nb_assigned = sscanf(saisie, "%lf", &r); 24 if (nb_assigned == 1) { 25 if ((int) r == -1) { 26 stop = vrai; 27 } else { 28 if (ps == NULL){ 29 ps = malloc(sizeof(*ps)); 30 } 31 ps->rayon = r; 32 printf("rayon lu = %g\n", ps->rayon); 33 printf("surface = %g\n", r >=0.0? surface(ps->rayon) : 0); 34 printf("volume = %g\n", r >= 0.0? volume(ps->rayon) : 0); 35 } 36 } 37 } while (!stop); 38 if (ps!= NULL){ 39 free(ps); 40 } 41 return (EXIT_SUCCESS); 42 } allocation explicite, pas de notion d'instance fonctions pouvant provenir de n'importe quel «module»

43 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 43 / 81

44 Caractéristiques essentielles de la POO 1 Tout est objet! : chaque objet encapsule des données et des méthodes agissant sur ces données. Nous développerons progressivement chaque concept. 44 / 81

45 Caractéristiques essentielles de la POO 1 Tout est objet! : chaque objet encapsule des données et des méthodes agissant sur ces données. 2 L encapsulation réalise une abstraction des données : vu de l extérieur de l objet, les détails d implémentation sont cachés. Nous développerons progressivement chaque concept. 45 / 81

46 Caractéristiques essentielles de la POO 1 Tout est objet! : chaque objet encapsule des données et des méthodes agissant sur ces données. 2 L encapsulation réalise une abstraction des données : vu de l extérieur de l objet, les détails d implémentation sont cachés. 3 Le concept de classe généralise la notion de type : tous les objets d une certaine classe sont des instances de cette classe. Nous développerons progressivement chaque concept. 46 / 81

47 Caractéristiques essentielles de la POO 1 Tout est objet! : chaque objet encapsule des données et des méthodes agissant sur ces données. 2 L encapsulation réalise une abstraction des données : vu de l extérieur de l objet, les détails d implémentation sont cachés. 3 Le concept de classe généralise la notion de type : tous les objets d une certaine classe sont des instances de cette classe. 4 Des classes peuvent hériter d autres classes (classe mère - classes filles). La notion d héritage permet d établir une hiérarchie entre les classes. Nous développerons progressivement chaque concept. 47 / 81

48 Caractéristiques essentielles de la POO 1 Tout est objet! : chaque objet encapsule des données et des méthodes agissant sur ces données. 2 L encapsulation réalise une abstraction des données : vu de l extérieur de l objet, les détails d implémentation sont cachés. 3 Le concept de classe généralise la notion de type : tous les objets d une certaine classe sont des instances de cette classe. 4 Des classes peuvent hériter d autres classes (classe mère - classes filles). La notion d héritage permet d établir une hiérarchie entre les classes. 5 Avec l héritage, il devient possible de redéfinir des méthodes au sein des classes filles. On parle de polymorphisme. Nous développerons progressivement chaque concept. 48 / 81

49 Notion d objet en POO Qu est-ce qu un objet? C est une entité cohérente et structurante de données et des algorithmes travaillant sur ces données. Les données sont structurées dans des attributs (i.e., propriétés) Les algorithmes sont structurés dans des méthodes (i.e., opérations) 49 / 81

50 Notion de classe en POO Qu est-ce qu une classe? C est un descripteur d objets (un moule à objets). Elle générale la notion de type de donnée. Elle décrit les données membres et les méthodes. Tous les objets d une même classe possèdent la même structure interne Un objet est une instance de la classe qui définit son type Les données membres de chaque objet prennent une valeur significative pour cet objet Instanciation : création d un objet avec ses données propres 50 / 81

51 Instanciation de la classe Sphère Ici, on fait abstraction de la propriété centre. On rajoute deux opérations : une pour instancier des objets de type sphère (constructeur), une autre pour changer (à volonté et non plus seulement à la création) le rayon. CLASSE Sphère - rayon: Réel + CréerSphère(r: Réel) + changerrayon(r: Réel) + surface(): Réel + volume(): Réel Instanciation Instanciation Instanciation INSTANCES :Sphère rayon=3.5 :Sphère rayon=7.3 :Sphère rayon= / 81

52 Instanciation d une classe Voiture CLASSE Voiture - marque: Chaîne - modèles: Chaîne - année: Entier - puissancefiscale: Entier - vitessemax: Entier - vitesseactuelle + CréerVoiture() + Démarrer() + Arrêter() + Accélerer(taux:Entier) + Avancer() + Reculer() Instanciation Instanciation INSTANCES :Voiture marque="bugatti" modèle="16/4 Veyron" année=2006 puissancefiscale=118 vitessemax=407 vitesseactuelle=230 :Voiture marque="lamborghini" modèle="murcielago" année=2005 puissancefiscale=56 vitessemax=330 vitesseactuelle= / 81

53 Apparence des 2 instances de Voiture décrites plus haut / 81

54 Exercice I 1 On cherche à modéliser par une classe les TAG d un morceaux MP3. 54 / 81

55 Exercice I 1 On cherche à modéliser par une classe les TAG d un morceaux MP3. 2 Ceux-ci manipulent : Titre, Interprète, Durée, Style, Album, / 81

56 Exercice I 1 On cherche à modéliser par une classe les TAG d un morceaux MP3. 2 Ceux-ci manipulent : Titre, Interprète, Durée, Style, Album,... 3 Et il faut pouvoir : accèder aux données, modifier les données. 56 / 81

57 Exercice I 1 On cherche à modéliser par une classe les TAG d un morceaux MP3. 2 Ceux-ci manipulent : Titre, Interprète, Durée, Style, Album,... 3 Et il faut pouvoir : accèder aux données, modifier les données. Ecrire le modèle textuel et le modèle graphique d un tel modèle 57 / 81

58 Exercice II 1 On cherche à modéliser par une classe le stock d un magasin 58 / 81

59 Exercice II 1 On cherche à modéliser par une classe le stock d un magasin 2 Celui-ci est caractérisé par un identifiant et un ensemble fini d objet / 81

60 Exercice II 1 On cherche à modéliser par une classe le stock d un magasin 2 Celui-ci est caractérisé par un identifiant et un ensemble fini d objet... 3 Et il faut pouvoir : Faire état du stock, Faire une commande au fournisseur, consulter l état du stock, assurer une commande client / 81

61 Exercice II 1 On cherche à modéliser par une classe le stock d un magasin 2 Celui-ci est caractérisé par un identifiant et un ensemble fini d objet... 3 Et il faut pouvoir : Faire état du stock, Faire une commande au fournisseur, consulter l état du stock, assurer une commande client... Ecrire le modèle textuel et le modèle graphique d un tel modèle 61 / 81

62 POO vs. programmation structurée 1 Prog. structurée : détermination d abord des procédures pour manipuler des données, puis de la structure à imposer aux données pour faciliter leur manipulation. 62 / 81

63 POO vs. programmation structurée 1 Prog. structurée : détermination d abord des procédures pour manipuler des données, puis de la structure à imposer aux données pour faciliter leur manipulation. 2 POO réalise l inverse : détermination d abord des données de façon cohérente dans des entités structurantes (objets), puis des opérations sur ces données. 63 / 81

64 POO vs. programmation structurée 1 Prog. structurée : détermination d abord des procédures pour manipuler des données, puis de la structure à imposer aux données pour faciliter leur manipulation. 2 POO réalise l inverse : détermination d abord des données de façon cohérente dans des entités structurantes (objets), puis des opérations sur ces données. POO est de ce point de vue plus modulaire, réutilisable, flexible et plus facile à maintenir 64 / 81

65 POO vs. programmation structurée Exemple Considérer une application composée de 2000 procédures, développée selon la prog. structurée ou POO : en prog. structurée, organisation du code très aléatoire... y code lourd, difficilement réutilisable, variables internes exposées en POO, on pourrait avoir 100 classes, 20 méthodes en moyenne par classe y code vraiment modulaire, regroupements cohérents, contrôle d accès aux variables internes En plus des bénéfices énoncés plus haut, les bugs sont plus faciles à découvrir et corriger!! 65 / 81

66 POO vs. programmation structurée procédure procédure méthode méthode Données encapsulées d'un objet procédure procédure Données globales méthode méthode Données encapsulées d'un objet procédure procédure méthode méthode Données encapsulées d'un objet 66 / 81

67 Exercice III 1 On cherche à modéliser par 3 classes les ensembles nécessaires à la tenue d un jury de fin d année. 67 / 81

68 Exercice III 1 On cherche à modéliser par 3 classes les ensembles nécessaires à la tenue d un jury de fin d année. 2 On a besoin de 3 types d information : Structure des cours, Eleves, Promotion 68 / 81

69 Exercice III 1 On cherche à modéliser par 3 classes les ensembles nécessaires à la tenue d un jury de fin d année. 2 On a besoin de 3 types d information : Structure des cours, Eleves, Promotion 3 Pour chaque élève on devra rendre une décision 69 / 81

70 Exercice III 1 On cherche à modéliser par 3 classes les ensembles nécessaires à la tenue d un jury de fin d année. 2 On a besoin de 3 types d information : Structure des cours, Eleves, Promotion 3 Pour chaque élève on devra rendre une décision Ecrire le modèle textuel et le modèle graphique des 3 modèles 70 / 81

71 POO vs. Conception orientée objet 71 / 81

72 Sommaire 1 Avant-propos 2 Conception orientée objet 3 Programmation procédurale 4 Programmation orientée objet 5 POO avec Java 72 / 81

73 Java Langage de POO le plus répandu, né en Riche bibliothèque de programmation documentée Plus de 4000 classes, des dizaines de milliers de méthodes! Agréable à lire, simple à comprendre mais pas à utiliser! Cross-platform (Portabilité) : le même programme peut s exécuter sur tous les OS et architectures où l environnement d exécution (JRE) est installé write once, run everywhere = écrivez une seule fois votre programme, exécutez-le sur toutes plates-formes La portabilité est rendue possible grâce à la Machine Virtuelle, qui utilise une représentation intermédiaire du code, le bytecode. 73 / 81

74 Java et son environnement d exécution Environnement d exécution : Java Runtime Environment (JRE) contient la Machine Virtuelle qui exécute votre programme compilé (.class) et grâce à qui la portabilité est possible, le traducteur du bytecode en code machine (à la volée) les binaires des bibliothèques natives de Java dont dépend votre programme. 74 / 81

75 Java et son environnement d exécution Environnement d exécution : Java Runtime Environment (JRE) contient la Machine Virtuelle qui exécute votre programme compilé (.class) et grâce à qui la portabilité est possible, le traducteur du bytecode en code machine (à la volée) les binaires des bibliothèques natives de Java dont dépend votre programme. Environnement de programmation : Java Development Kit (JDK) contient la JRE, le langage Java pour écrire le code source de votre programme, Le compilateur de code source en bytecode (javac), d autres outils de développement, la documentation (javadoc). 75 / 81

76

77 Code source vers bytecode vers code machine Code d abord compilé en bytecode dans la Machine Virtuelle, puis à la volée (juste avant l exécution) en code machine. Machine Virtuelle Compilation Traduction à la volée Code Source Java (.java) Bytecode (.class) Code machine 77 / 81

78 Environnement de développement intégré Integrated Development Environment (IDE) C est une plate-forme logicielle comportant un éditeur sophistiqué et un suite d outils pouvant gérer la programmation en plusieurs langages. Coloration du code, assistance au codage, complétion du code Organisation du code dans une arborescence de fichiers Navigation facile parmi les modules du programme Gestion de version Configuration poussée de la compilation, débogueur Gestion des dépendances, des bibliothèques natives et externes Configuration de l empaquetage du programme pour distribution 78 / 81

79 2 IDE populaires, gratuits et open-source pour Java NetBeans Développé par une communauté supervisée par Sun Architecture robuste. Très utilisé. 79 / 81

80 2 IDE populaires, gratuits et open-source pour Java NetBeans Développé par une communauté supervisée par Sun Architecture robuste. Très utilisé. Eclipse Développé par une communauté supervisée par l Eclipse Foundation C est le plus fourni en fonctionnalités et le plus populaire 80 / 81

81 2 IDE populaires, gratuits et open-source pour Java NetBeans Développé par une communauté supervisée par Sun Architecture robuste. Très utilisé. Eclipse Développé par une communauté supervisée par l Eclipse Foundation C est le plus fourni en fonctionnalités et le plus populaire Architectures modulaires et extensibles Fonctionnalités non natives fournies par des greffons (plug-in) Utiliser l un ou l autre relève d un goût personnel Nous utiliserons l un ou l autre Mais d abord, nous commencerons par un simple éditeur de texte / 81

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

Annexe : La Programmation Informatique

Annexe : La Programmation Informatique GLOSSAIRE Table des matières La Programmation...2 Les langages de programmation...2 Java...2 La programmation orientée objet...2 Classe et Objet...3 API et Bibliothèque Logicielle...3 Environnement de

Plus en détail

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/2012. 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme Java 1 - Vue générale 2 - Mon premier programme 3 - Types de Programme 1 2 c est quoi? Technologie développée par SUN Microsystems lancée en 1995 Dans un des premiers papiers* sur le langage JAVA, SUN le décrit

Plus en détail

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr

Initiation à JAVA et à la programmation objet. raphael.bolze@ens-lyon.fr Initiation à JAVA et à la programmation objet raphael.bolze@ens-lyon.fr O b j e c t i f s Découvrir un langage de programmation objet. Découvrir l'environnement java Découvrir les concepts de la programmation

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

Plus en détail

Bases Java - Eclipse / Netbeans

Bases Java - Eclipse / Netbeans Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement

Plus en détail

as Architecture des Systèmes d Information

as Architecture des Systèmes d Information Plan Plan Programmation - Introduction - Nicolas Malandain March 14, 2005 Introduction à Java 1 Introduction Présentation Caractéristiques Le langage Java 2 Types et Variables Types simples Types complexes

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles) 1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d

Plus en détail

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

Plus en détail

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

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 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 des objets d'une classe Utilisation d'une classe Droit

Plus en détail

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Le langage C. Séance n 4

Le langage C. Séance n 4 Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de

Plus en détail

Chapitre VI- La validation de la composition.

Chapitre VI- La validation de la composition. Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

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

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr . Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le

Plus en détail

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

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

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Bases de programmation. Cours 5. Structurer les données

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

Plus en détail

Programmation en Java IUT GEII (MC-II1) 1

Programmation en Java IUT GEII (MC-II1) 1 Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)

Plus en détail

Programmation C. Apprendre à développer des programmes simples dans le langage C

Programmation C. Apprendre à développer des programmes simples dans le langage C Programmation C Apprendre à développer des programmes simples dans le langage C Notes de cours sont disponibles sur http://astro.u-strasbg.fr/scyon/stusm (attention les majuscules sont importantes) Modalités

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Programmation Orientée Objet Mohamed Tounsi Institut Supérieur d'informatique et de Multimédia Sfax Septembre 2014 Mohamed Tounsi (ISIMS) Programmation Orientée Objet Septembre 2014 1 / 16 Responsable

Plus en détail

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

Environnements de développement (intégrés) Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

COMPARAISONDESLANGAGESC, C++, JAVA ET

COMPARAISONDESLANGAGESC, C++, JAVA ET REPUBLIQUE DU BENIN *******@******* MINISTERE DE L ENSEIGNEMENT SUPERIEUR ET DE LA RECHERCHE SCIENTIFIQUE(MESRS) *******@******* UNIVERSITE D ABOMEY CALAVI(UAC) *******@******* ECOLE POLYTECHNIQUE D ABPOMEY

Plus en détail

Java c est quoi? Java pourquoi?

Java c est quoi? Java pourquoi? Grandes lignes du cours Cours JAVA : Le bases du langage Java. Version 3.02 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

Conventions d écriture et outils de mise au point

Conventions d écriture et outils de mise au point Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette

Plus en détail

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

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2 Langage et Concepts de Programmation Objet Travaux Dirigés no2 Pôle Informatique École Nationale Supérieure des Mines de St-Etienne Vous trouverez plus de détails sur les concepts abordés lors de ce TD

Plus en détail

Une introduction à Java

Une introduction à Java Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)

Plus en détail

Java Licence Professionnelle CISII, 2009-2010

Java Licence Professionnelle CISII, 2009-2010 Licence Professionnelle CISII, 2009-2010 Cours 1 : Introduction à Java A. Belaïd abelaid@loria.fr Cours disponible sur le site : http://www.loria.fr/~abelaid puis Teaching 1 Fonctionnement 12 séances :

Plus en détail

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis

Plus en détail

Programmation système de commandes en C

Programmation système de commandes en C Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes

Plus en détail

Eclipse atelier Java

Eclipse atelier Java Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer

Plus en détail

Évaluation et implémentation des langages

Évaluation et implémentation des langages Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation

Plus en détail

Programmation Objet - Cours II

Programmation Objet - Cours II Programmation Objet - Cours II - Exercices - Page 1 Programmation Objet - Cours II Exercices Auteur : E.Thirion - Dernière mise à jour : 05/07/2015 Les exercices suivants sont en majorité des projets à

Plus en détail

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

Générer du code à partir d une description de haut niveau Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

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

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Projet Active Object

Projet Active Object Projet Active Object TAO Livrable de conception et validation Romain GAIDIER Enseignant : M. Noël PLOUZEAU, ISTIC / IRISA Pierre-François LEFRANC Master 2 Informatique parcours MIAGE Méthodes Informatiques

Plus en détail

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique Institut Supérieure Aux Etudes Technologiques De Nabeul Département Informatique Support de Programmation Java Préparé par Mlle Imene Sghaier 2006-2007 Chapitre 1 Introduction au langage de programmation

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

3IS - Système d'exploitation linux - Programmation système

3IS - Système d'exploitation linux - Programmation système 3IS - Système d'exploitation linux - Programmation système 2010 David Picard Contributions de : Arnaud Revel, Mickaël Maillard picard@ensea.fr Environnement Les programmes peuvent être exécutés dans des

Plus en détail

Traduction des Langages : Le Compilateur Micro Java

Traduction des Langages : Le Compilateur Micro Java BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant

Plus en détail

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

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

UE C avancé cours 1: introduction et révisions

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Programmation Orientée Objet

Programmation Orientée Objet Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :

Plus en détail

Patrons de Conception (Design Patterns)

Patrons de Conception (Design Patterns) Patrons de Conception (Design Patterns) Introduction 1 Motivation Il est difficile de développer des logiciels efficaces, robustes, extensibles et réutilisables Il est essentiel de comprendre les techniques

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

Plus en détail

Cours d initiation à la programmation en C++ Johann Cuenin

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

Plus en détail

UML et les Bases de Données

UML et les Bases de Données CNAM UML et les Bases de Données UML et les Bases de Données. Diagramme de classes / diagramme d objets (UML)...2.. Premier niveau de modélisation des données d une application...2.2. Les éléments de modélisation...2.2..

Plus en détail

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

Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

Plus en détail

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

IFT2255 : Génie logiciel

IFT2255 : Génie logiciel IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti

Plus en détail

Cours d Algorithmique et de Langage C 2005 - v 3.0

Cours d Algorithmique et de Langage C 2005 - v 3.0 Cours d Algorithmique et de Langage C 2005 - v 3.0 Bob CORDEAU cordeau@onera.fr Mesures Physiques IUT d Orsay 15 mai 2006 Avant-propos Avant-propos Ce cours en libre accès repose sur trois partis pris

Plus en détail

Langage Java. Classe de première SI

Langage Java. Classe de première SI Langage Java Table des matières 1. Premiers pas...2 1.1. Introduction...2 1.2. Mon premier programme...2 1.3. Les commentaires...2 2. Les variables et les opérateurs...2 3. La classe Scanner...3 4. Les

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Université de Bangui. Modélisons en UML

Université de Bangui. Modélisons en UML Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et

Plus en détail

La technologie Java Card TM

La technologie Java Card TM Présentation interne au CESTI La technologie Java Card TM sauveron@labri.u-bordeaux.fr http://dept-info.labri.u-bordeaux.fr/~sauveron 8 novembre 2002 Plan Qu est ce que Java Card? Historique Les avantages

Plus en détail

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

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez... Au programme Conception Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Présentation L UE COO est le prolongement immédiat de l UE POO du S4 informatique. cf. http://portail.fil.univ-lille1.fr/portail/ls4/poo

Plus en détail

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines) Module 1 : Programmer une application informatique Durée

Plus en détail

Vulgarisation Java EE Java EE, c est quoi?

Vulgarisation Java EE Java EE, c est quoi? Paris, le 1 Février 2012 Vulgarisation Java EE Java EE, c est quoi? Sommaire Qu est ce que Java? Types d applications Java Environnements Java Versions de Java Java EE, c est quoi finalement? Standards

Plus en détail

Introduction à l héritage en C++

Introduction à l héritage en C++ Algorithmique/Langage 1ère année Introduction à l héritage en C++ Yacine BELLIK IUT d Orsay Yacine.Bellik@iut-orsay.fr 1 Bibliographie Ce cours est basé sur le livre suivant : Programmer en C++, 5ème édition

Plus en détail

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux. UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases

Plus en détail

Cours Programmation Système

Cours Programmation Système Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février

Plus en détail

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

I. Introduction aux fonctions : les fonctions standards

I. Introduction aux fonctions : les fonctions standards Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons

Plus en détail

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

Objets et Programmation. origine des langages orientés-objet Objets et Programmation origine des langages orientés-objet modularité, encapsulation objets, classes, messages exemples en Java héritage, liaison dynamique G. Falquet, Th. Estier CUI Université de Genève

Plus en détail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être

Plus en détail

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction - 2007, Frédéric Peschanski

S T L - C P S - L e s p l u g i n s E c l i p s e. - Une Introduction - 2007, Frédéric Peschanski S T L - C P S - L e s p l u g i n s E c l i p s e - Une Introduction - 2007, Frédéric Peschanski L a p l a t e f o r m e E c l i p s e Aperçu de la plateforme Eclipse Runtime Composants OSGI Equinoxe Plugins

Plus en détail

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Logiciel Libre Cours 3 Fondements: Génie Logiciel Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/

Plus en détail

Chapitre 2. Classes et objets

Chapitre 2. Classes et objets Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons

Plus en détail

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

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 UNIVERISTE MOHAMMED PREMIER Faculté des Sciences d Oujda Oujda - Maroc Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5 Pr. El Mostafa DAOUDI Département de Mathématiques

Plus en détail

Introduction aux concepts d ez Publish

Introduction aux concepts d ez Publish Introduction aux concepts d ez Publish Tutoriel rédigé par Bergfrid Skaara. Traduit de l Anglais par Benjamin Lemoine Mercredi 30 Janvier 2008 Sommaire Concepts d ez Publish... 3 Système de Gestion de

Plus en détail

Entraînement au concours ACM-ICPC

Entraînement au concours ACM-ICPC Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming

Plus en détail

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon

Rapport de Synthèse. Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon L Y O N Département Informatique Année 2011/2012 Rapport de Synthèse Création d un Générateur de modèle PADL pour le langage C++ Sébastien Colladon Laboratoire Ptidej de L Ecole Polytechnique de Montréal

Plus en détail

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)

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) Quelques patterns pour la persistance des objets avec DAO Ce cours présente des modèles de conception utilisés pour effectuer la persistance des objets Université de Nice Sophia-Antipolis Version 1.4 30/8/07

Plus en détail

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé. http://www.rzo.free.fr Cours de Java Sciences-U Lyon Java - Introduction Java - Fondamentaux Java Avancé http://www.rzo.free.fr Pierre PARREND 1 Octobre 2004 Sommaire Java Introduction Java Fondamentaux Histoire de Java Machine

Plus en détail