Plan Général Cours 1

Save this PDF as:
 WORD  PNG  TXT  JPG

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

Download "Plan Général Cours 1"

Transcription

1 Programmation Orientée Objet & le langage JAVA Sébastien IKSAL IUT de Laval Dépt. SRC 1 2 Intervenants Organisation (TD & TP) (TD & TP) (CM) Volume horaire 6 heures de CM 15 heures de TD 9 heures de TP Examen Théorique Examen(s) Pratique(s) SRC 2ème année - UE32 2 & Rappels / Héritage / Interface Les Applets Les évènements et les erreurs Le paquetage SWING Plan Général Cours 1 Gestion de flux (Fichiers & Chaînes de caractères) La programmation concurrente Le principe de récursivité & Rappels SRC 2ème année - UE Plan Rappels Rappels du cours d A.M. Puizillout de 1ère année Styles de programmation Les bases Objet, Méthode, Encapsulation Rappels Cycle de vie d un programme Analyse Produit un algorithme Programmation Produit un programme dans un langage supporté par la machine Compilation du programme Produit un programme exécutable Tests du programme Mise en exploitation Maintenance SRC 2ème année - UE32 5 SRC 2ème année - UE32 6 1

2 Rappels (2) s Documentation Un programme est conçu pour évoluer en fonction des besoins Certaines partie peuvent être réutilisées par d autres Il doit être compréhensible : Par vous Par d autres Être explicite dans les noms (variables, types, fonctions) Commentaires judicieux, rapport de conception & mode d emploi Indentez votre programme et écrivez du code court SRC 2ème année - UE32 7 Ce qu il ne faut pas faire public void fillfield(vector path, Vector values) {boolean findflag=false; int i=0;onglet tempo; if (path.size()!=0) {while ((findflag==false)&&(i<listeonglets.size())) {tempo=(onglet)listeonglets.elementat(i); if (tempo.whoami().equals(path.elementat(0).tostring())) {findflag=true;tempo.fillfield(path, values); else i++; Ce qu il faut faire if (path.size()!= 0) {// Vérification de la présence de contenu à afficher while ((findflag == false) && (i < listeonglets.size())) {// Recherche de l emplacement tempo = (Onglet)listeOnglets.elementAt(i); if (tempo.whoami().equals(path.elementat(0).tostring())) {// Emplacement trouvé findflag=true; tempo.fillfield(path, values); // Affectation du contenu à afficher dans l objet else i++; SRC 2ème année - UE32 8 Rappels (4) Rappels (5) Un algorithme Description d un processus qui produit un résultat à partir de données Généralement écrits en pseudo-code Un programme Traduction d un algorithme dans un langage particulier Outils Variables, Structures de contrôle, Fonctions, Langage Compilateur, débogueur, environnement de développement SRC 2ème année - UE32 9 Variables Types prédéfinis : entier, réel, chaîne, booléen, Types composés : Tableau d entiers, Livre, Notion de portée des variables Constantes Structures de contrôle Structures conditionnelles Si Alors, Si Alors Sinon, Selon Structures répétitives Pour, Tant que, Répéter Tant que SRC 2ème année - UE32 10 Rappels (6) Styles de Programmation Un algorithme correspond à un problème Une fonction correspond à un sous-problème Suite d actions élémentaires Peut retourner un résultat Réutilisable Peut posséder des paramètres Passage de paramètre par valeur Contenu identique avant et après l appel de la fonction Passage de paramètre par référence Passage de l adresse mémoire Contenu modifié après l appel de la fonction SRC 2ème année - UE32 11 La programmation impérative Exécution d une suite d instructions modifiant l état de la mémoire Découpage en fonctions et procédures Langages : C, Pascal La programmation applicative Évaluation des expressions données en argument Programmes courts et souvent récursifs Langages : Lisp, Caml SRC 2ème année - UE

3 Styles de Programmation (2) La programmation orientée objet Un programme = Une communauté de composants autonomes (objets) qui interagissent via des messages Langages : Java, Smalltalk, C++ Intérêt : Programmation modulaire Facilite la maintenance et la réutilisation Facilite la spécialisation et l abstraction Programmation Orientée Objet La programmation orientée objet consiste à modéliser informatiquement un ensemble d'éléments d'une partie du monde réel (que l'on appelle domaine) en un ensemble d'entités informatiques. Ces entités informatiques sont appelées objet. Il s'agit de données informatiques regroupant les principales caractéristiques des éléments du monde réel (taille, la couleur,...). SRC 2ème année - UE32 13 SRC 2ème année - UE32 14 L Objet La Classe Un objet est caractérisé par plusieurs notions: Les attributs Données caractérisant l'objet. (Variables) Les méthodes (ou fonctions membre) Caractérisent le comportement de l objet (Messages) Ensemble des actions que l'objet est à même de réaliser. Ces opérations permettent de faire réagir l'objet aux sollicitations extérieures (ou d'agir sur les autres objets). L'identité Permet de distinguer l objet courant des autres objets, indépendamment de son état. (code, numéro de série,...) La classe est un «modèle générique» Description d une entité du monde Elle ne définit pas un objet particulier Un objet est une instance d une classe Une classe est équivalente à un type de données Particularités Pas de variables «globales» Utilisation d accesseurs pour la gestion des attributs Utilisation de constructeurs et de destructeurs d objets Regroupement de classes en «package» SRC 2ème année - UE32 15 SRC 2ème année - UE32 16 Encapsulation Encapsulation (2) Séparation entre les données d un objet et leur utilisation Utilisation d accesseurs car Un objet est caractérisé par ses méthodes La manière dont les données sont implantées est sans importance Un accesseur met à jour en cascade Cas des attributs inter-dépendants Facilite la gestion de la cohérence des informations public class Personne { private int age = 0; private boolean majorite = false; public void setage(int nouvelage) { majorite = (nouv >= 18); age = nouvelage; public boolean estmajeur() { return majorite; SRC 2ème année - UE32 17 SRC 2ème année - UE

4 Le langage JAVA Rappels Années 1990 Propriétés Orienté objet Fortement typé Compilé-interprété Compilation : génération en langage intermédiaire (Byte code) Interprétation sur n importe quelle machine cible. Complet Bibliothèque importante de classes Orienté multimédia, Internet Portabilité au détriment de la rapidité Programmation Fin d instruction : «;» Bloc d instructions : «{» et Instructions de contrôle Conditionnel : If (Else) et Switch Boucle : While, Do While et For Exception : Try catch et Throw Affectation : «=» Règles Un nom de classe commence par une majuscule Un nom de méthode ou de variable commence par une minuscule Une classe par fichier (nommé comme la classe) SRC 2ème année - UE32 19 SRC 2ème année - UE32 20 Rappels (2) Les variables package exemples; /** * Commentaires */ public class { /** * variable de test */ private int x ; /** * constructeur standard * * initialise la variable x à la valeur 2 */ public () { x = 2 ; /** * méthode d'accès en lecture * int la valeur de la variable */ public int getx() { return this.x ; /** * méthode d'affichage * * affiche la valeur de la variable x */ public void affiche () { System.out.println ("La valeur de x est : " + this.x); System.out.println(); Variables Déclarées avant d être utilisées, voire initialisées int i = 5; Portée Domaine de validité Le bloc dans lequel elles sont déclarées Création d un objet : e1 = new (); SRC 2ème année - UE32 21 SRC 2ème année - UE32 22 Les méthodes Quelques mots clés Toujours déclarées au sein d une classe [modificateur]* type_de_retour void nom_de_la_méthode ( [[type_de_paramètre] [nom_du_paramètre]]* ) { instructions_de_la_méthode public int compter(int x) { Appel nom_de_la_méthode( [paramètre]*) nom_objet.nom_de_la_méthode( [paramètre]*) Une méthode particulière : Le constructeur public nom_de_la_classe ( [paramètre]*) SRC 2ème année - UE32 23 Visibilité des variables private : Visibilité uniquement au sein de la classe public : Visibilité totale protected : Attendre le cours sur l héritage static : Variable ou méthode de classe Réservation d un emplacement unique en mémoire : un compteur d objet final : Création de constantes Par convention le nom des constantes est en majuscule this : Référence sur l objet courant nécessaire lorsque plusieurs variables portent le même nom SRC 2ème année - UE

5 Rappels public class Voiture { private final int NBROUES = 4; private static int nbvoitures = 0; private String marque; public Voiture (String unemarque) { marque = unemarque; nbvoitures++; public void chgmarque (String marque) { this.marque = marque; public int combiendevoitures() { return nbvoitures; Voiture v1=new Voiture(«truc»); Voiture v2=new Voiture(«truc»); Voiture v3=new Voiture(«truc»); Voiture v4=new Voiture(«truc»); nbvoitures =? SRC 2ème année - UE32 25 Passage de paramètres Par valeur pour les types de base (entier, réel, ) Passage de la valeur Deux cases mémoires séparées Valeur inchangée en sortie de fonction Par référence pour les objets Passage de l adresse mémoire Une case mémoire unique Valeur modifiée en sortie de fonction Cast ou transtypage Forcer le type d une variable int nb=(int) B nb a pour valeur 66 SRC 2ème année - UE32 26 Les paquetages s En java : 1 classe = 1 fichier Un paquetage Mécanisme de regroupement de classes Arborescence de paquetages = Arborescence de répertoires Les noms de paquetages sont en minuscule java.awt.event java/awt/event 2 instructions particulières package En début de fichier java, déclare une classe dans un paquetage Le fichier.java doit se trouver dans le répertoire associé import Permet de nommer les classes par le nom local plutôt que le nom absolu Attention : Si 2 classes ont le même nom local on utilise le nom absolu SRC 2ème année - UE32 27 class MonApplette extends Applet // Erreur : Applet non trouvée 3 solutions : class MonApplette extends java.applet.applet // Nom absolu import java.applet.applet class MonApplette extends Applet // Nom local package perso.web; import java.applet.* class MonApplette extends Applet SRC 2ème année - UE32 28 Cours 2 Plan Héritage et 29 SRC 2ème année - UE

6 Rappels Encapsulation Une classe représente une famille d objets qui partageant les mêmes caractéristiques Attributs - ou membres, variables, champs... Méthodes - ou fonctions, fonctions membres Une classe décrit une entité du monde, c est un modèle générique Un étudiant est caractérisé par Un nom, un prénom, un âge, une moyenne, une décision de jury Il suit un cours, travaille avec un binôme,... Un objet est une instance d une classe La classe est un élément fondamental en POO Principe Séparation de la représentation des données d un objet et leur utilisation Un objet se caractérise uniquement par les spécifications de ses méthodes La manière dont les données sont implantées est sans importance Les accesseurs permettent de conserver la cohérence des informations En java On déclare les attributs en «private» SRC 2ème année - UE32 31 SRC 2ème année - UE32 32 Problématique Héritage en java Le problème Une application a besoin de services dont une partie seulement est proposée par une classe déjà définie (classe dont on ne possède pas nécessairement le source) On ne veut pas réécrire le code Un Point Un PointGraphique a une position peut être déplacé peut calculer sa distance à l origine... est un Point + une couleur + une opération d affichage Solution en POO : L Héritage Définition d une nouvelle classe à partir d une classe existante Utilisation de la relation «est-un» SRC 2ème année - UE32 33 La classe B hérite de A si on peut dire que B «est un» ou «est une sorte de» A L héritage entre deux classes est indiqué par le mot clé «extends» public class B extends A B hérite de A B est une sous-classe de A B est la classe fille de A A est la classe mère de B A est la superclasse de B En java l héritage multiple n est pas possible SRC 2ème année - UE32 34 PointGraphique.java import java.awt.graphics; import java.awt.color; public class PointGraphique extends Point { Color coul; // affiche un point sous la forme // d un carré de 3 pixels de côté public void dessine(graphics g) { g.setcolor(coul); g.fillrect(x-1, y-1, 3, 3); PointGraphique hérite (étend) de Point Elle possède les méthodes et variables définies dans Point Définition d une nouvelle variable Définition d une nouvelle méthode Utilisation d une variable héritée de la classe Point La relation d héritage peut être vue comme une relation de «généralisation/spécialisation» entre une classe et ses sousclasses. Super-classe Spécialisation Personne Etudiant Généralisation Sous-classe Dans le sens «généralisation», il est question d abstraction. Dans le sens «spécialisation», il est question d augmenter le niveau de détail. SRC 2ème année - UE32 35 SRC 2ème année - UE

7 Visibilité Visibilité (2) La classe fille connaît selon le contrôle d accessibilité (Private, Public ) Les attributs de la classe mère Les méthodes de la classe mère La classe fille peut Définir de nouveaux attributs et méthodes Re-définir les attributs ou les méthodes de sa classe mère (concept de surcharge) Private - (package) Protected Public La classe elle même Oui Oui Oui Oui Les classes et sous-classes du même package Les sous-classes d un autre package Les classes (non sousclasses) d un autre package Non Oui Oui Oui Non Non Oui Oui Non Non Non Oui SRC 2ème année - UE32 37 SRC 2ème année - UE32 38 Visibilité (3) Constructeurs Cas particulier des classes On a toujours dit : Une classe = un fichier Le nom de la classe = le nom du fichier La véritable règle est : Une classe publique par fichier A.java Public class A { javac Le nom de la classe publique = le nom du fichier Les autres classes sont de visibilité «package» A.class B.java Public class B { Class C { Class D { javac B.class D.class C.class Il faut toujours définir un constructeur dans une classe, même s il s agit d une sous-classe. Une sous-classe n hérite pas des constructeurs de sa classe mère. L appel au constructeur de la super classe doit toujours être la première instruction du constructeur de la sous-classe Utilisation de l instruction super(paramètres du constructeur). Le corps du constructeur d Object est appelé en premier puis suivent ceux des sous-classes en descendant dans la hiérarchie. En cas d oubli, Java en insère un automatiquement, mais, il insère un constructeur sans paramètres. Il faut qu il ait été prévu dans la super classe. super représente la super classe comme this représente la classe courante. super.affiche() = appel à la méthode affiche de la super-classe SRC 2ème année - UE32 39 SRC 2ème année - UE32 40 public class Object { public Object() { public class Point extends Object { double x, y; public Point(double x, double y) { super(); // appel implicite this.x = x; this.y = y; public class PointCouleur extends Point { Color c; public PointCouleur(double x, double y, Color c) { super(x, y); this.c = c; Ordre des appels 3 2 Ordre d exécution 1 New PointCouleur(); Redéfinition Une sous-classe peut ajouter des variables et/ou méthodes à celles qu elle hérite de sa super-classe. Une sous-classe peut redéfinir (override) les méthodes dont elle hérite et fournir ainsi des implémentations spécialisées pour celles-ci. On parle de redéfinition d une méthode lorsque La classe définit une méthode dont le nom, le type de retour ainsi que les paramètres sont identiques à ceux d une méthode dont elle hérite. Lors de l invocation de la méthode, c est la nouvelle définition qui est utilisée et non celle de la super-classe. SRC 2ème année - UE32 41 SRC 2ème année - UE

8 Redéfinition & Surcharge Il est possible de réutiliser le code de la méthode héritée dans la redéfinition avec super : public class Etudiant extends Personne { public void affiche() { // redéfinition super.affiche(); // appel de la méthode héritée de Personne La surcharge consiste à définir une nouvelle méthode qui porte le même nom mais qui varie au niveau de la signature (liste des paramètres). Ne pas confondre Redéfinition et Surcharge Surcharge public class B extends A { public void affiche(double i) { System.out.println(«B» + i); La classe B possède 2 méthodes affiche : affiche(int) et affiche (double) public class A { public void affiche(int i) { System.out.println(«A» + i); Redéfinition public class C extends A { public void affiche(int i) { System.out.println(«C» + i); La classe C possède 1 seule méthode affiche : affiche(int) SRC 2ème année - UE32 43 SRC 2ème année - UE32 44 Méthodes «final» Final vs Static Objectif : «verrouiller» une méthode pour interdire toute éventuelle redéfinition dans les sous-classes. Utilisation : public final void methode() { Les méthodes private sont implicitement final (elles ne peuvent être redéfinies) Effet de final sur une classe : La classe ne peut être étendue (elle ne peut avoir de sous-classes) Effet de final sur un attribut : Un attribut final est une constante pour l objet Cela permet d optimiser le code de la classe Un attribut static n existe qu en un seul exemplaire, il est le même pour tous les objets de la classe et de ses sous-classes. Une méthode static ne s applique pas aux objets mais uniquement à la classe. : une fonction mathématique Math.cos(int i) permet de calculer le cosinus d un nombre X = Math.cos(95); Autre exemple la méthode principale d une classe Ne pas confondre final et static SRC 2ème année - UE32 45 SRC 2ème année - UE32 46 public class Point { private double x, y; private static int compteurpoints = 0; public Point(double x, double y) { this.x = x; this.y = y; compteurpoints++; public static int lirecompteurpoints() { return compteurpoints; pa public class Segment { private Point pa, pb; public Segment(double pax, double pay, double pbx, double pby) { pa = new Point(pAx, pay); pb = new Point(pBx, pby); System.out.println(Point.lireCompteurPoints()); pb Rappel : Le but principal de l héritage est de définir une classe à partir d une autre afin de ne pas réécrire le code => Réutilisation Mais : Une classe B qui hérite d une classe A peut être vue comme un sous-type (ou sous-ensemble) du type définit par A Voiture Un Coupé est une Voiture x y compteurpoints x y Coupé L ensemble des coupés est inclus Dans l ensemble des voitures SRC 2ème année - UE32 47 SRC 2ème année - UE

9 (2) On parle de surclassement (ou upcasting) lorsqu une instance d une sous-classe est vue comme une instance de la classe-mère : Voiture v; V = new Coupe(); A une variable de type Voiture, on a affecté un objet de type Coupé. Plus généralement, il est possible d affecter à une variable un objet de n importe quelle sous-classe (directe ou non) de la classe de référence. (3) Lorsqu un objet est «surclassé», il est considéré comme étant du type de référence. Ses attributs et méthodes sont donc limités à ceux du type de référence. Etudiant e; Personne e = new Etudiant(«Dupont», «SRC2»); String nom; Personne p; e p = e; public String getname(); Est un e.getname(); p p.getname(); Dupont Etudiant e.getclass(); SRC2 String classe; p.getclass(); public String getclass(); SRC 2ème année - UE32 49 SRC 2ème année - UE32 50 Remarque : (4) Si un objet p (de type Etudiant) est surclassé, on ne peut utiliser que les attributs et méthodes existants dans la classe de référence (Personne) Mais lors de l utilisation des méthodes (par exemple getname) c est toujours le code le plus proche de la classe réelle de l objet dans la hiérarchie des classes qui sera invoqué. L opération inverse du surclassement est appelé downcasting (ou cast) ClasseX obj = new ClasseX(); ClasseA a = (ClasseA) obj; SRC 2ème année - UE32 51 p e Etudiant e; e = new Etudiant(«Dupont», «SRC2»); Personne p; p = e; System.out.println(p.getName()); Etud Dupont Est un String nom; Personne public String getname() { return «Pers» + nom; Etudiant String classe; Dupont public String getname() SRC2 { return «Etud» + nom; public String getclass(); SRC 2ème année - UE32 52 Le terme polymorphisme décrit la possibilité qu à un objet de prendre plusieurs formes (ex : l eau). En programmation objet, on appelle polymorphisme Le fait qu un objet d une classe puisse être manipulé comme s il appartenait à une autre classe Le fait que la même opération puisse se comporter différemment sur différentes classes de la hiérarchie Le polymorphisme est rendu possible grâce à la redéfinition et au surclassement. SRC 2ème année - UE32 53 Voiture String immat; public void affiche() { System.out.println( «Imm :» + immat); Coupe int puissance; public void affiche() { super.affiche(); System.out.println( «puiss :» + puissance); Break int nbplaces; public void affiche() { super.affiche(); System.out.println( «capa :» + nbplaces); public class Parc { Voiture[] liste = new Voiture[30]; int nbvoitures = 0; public void afficherliste() { for(int i=0; i<nbvoitures; i++) liste[i].affiche(); Si un nouveau type de véhicule est défini, le code de Parc reste inchangé SRC 2ème année - UE

10 Cours 3 Plan Héritage (suite), 55 SRC 2ème année - UE32 56 Rappels Héritage L héritage La redéfinition et la surcharge Le surclassement Le polymorphisme La classe B hérite de A si on peut dire que B «est un» A B «est une sorte de» A En java, l héritage entre deux classes est indiqué par le mot clé «extends» public class B extends A SRC 2ème année - UE32 57 SRC 2ème année - UE32 58 PointGraphique.java import java.awt.graphics; import java.awt.color; public class PointGraphique extends Point { Color coul; // affiche un point sous la forme // d un carré de 3 pixels de côté public void dessine(graphics g) { g.setcolor(coul); g.fillrect(x-1, y-1, 3, 3); PointGraphique hérite (étend) de Point Elle possède les méthodes et variables définies dans Point Définition d une nouvelle variable Définition d une nouvelle méthode Utilisation d une variable héritée de la classe Point Une sous-classe peut redéfinir (override) les méthodes dont elle hérite et fournir ainsi des implémentations spécialisées pour celles-ci. On parle de redéfinition d une méthode lorsque La classe définit une méthode dont le nom, le type de retour ainsi que les paramètres sont identiques à ceux d une méthode dont elle hérite. Lors de l invocation de la méthode, c est la nouvelle définition qui est utilisée et non celle de la super-classe. La surcharge consiste à définir une nouvelle méthode qui porte le même nom mais qui varie au niveau de la signature (liste des paramètres). SRC 2ème année - UE32 59 SRC 2ème année - UE

11 public class A { public void affiche(int i) { System.out.println(«A» + i); Principe : Une classe B qui hérite d une classe A peut être vue comme un sous-type (ou sous-ensemble) du type définit par A Surcharge public class B extends A { public void affiche(double i) { System.out.println(«B» + i); La classe B possède 2 méthodes affiche : affiche(int) et affiche (double) Redéfinition public class C extends A { public void affiche(int i) { System.out.println(«C» + i); La classe C possède 1 seule méthode affiche : affiche(int) Voiture Coupé Un Coupé est une Voiture L ensemble des coupés est inclus dans l ensemble des voitures SRC 2ème année - UE32 61 SRC 2ème année - UE32 62 Le polymorphisme c est Le fait qu un objet d une classe puisse être manipulé comme s il appartenait à une autre classe Le fait que la même opération puisse se comporter différemment sur différentes classes de la hiérarchie Le polymorphisme est rendu possible grâce à la redéfinition et au surclassement. introductif : La liste d animaux public class ListeDAnimaux { Utilisation du polymorphisme public static final int NB_MAX = 20; La prise en compte de private Animal[] tabanimaux = new Animal[NB_MAX]; nouveaux animaux ne remet private int nbanimaux = 0; pas en cause le code public void ajouter(animal a) { if (nbanimaux < NB_MAX) tabanimaux[nbanimaux++] = a; public void entendremenagerie() { for(int i=0; i < nbanimaux; i++) tabanimaux[i].crier(); Problème : Comment définir le cri d un animal «en général»? Méthode crier de la classe Animal? SRC 2ème année - UE32 63 SRC 2ème année - UE32 64 La classe abstraite Une solution propre : Utiliser des classes et des méthodes abstraites Principe Définir des concepts incomplets qui devront être implémentés dans les sous-classes Utilité Factoriser le code : Créer un code unique pour différentes utilisations Définir un concept générique qui ne possède pas d exemple concret (exemple : une œuvre d art) En java Utilisation du mot clé abstract Classe abstraite Méthodes abstraites public abstract class Animal { private String nom; private double poids; private double taille; public double lirepoids() { return poids;... public abstract void crier(); public abstract void deplacer(); SRC 2ème année - UE32 65 SRC 2ème année - UE

12 Règles Règles (2) Une classe abstraite est une classe non instanciable Une méthode abstraite est une méthode qui n admet pas d implémentation au niveau de la classe dans laquelle elle est déclarée Une classe pour laquelle au moins une méthode est abstraite doit être déclarée abstraite (l inverse n est pas vrai) Les méthodes abstraites permettent la mise en œuvre le polymorphisme Il est souvent conseillé d utiliser des noms de classes abstraites comme type pour des variables lors du polymorphisme SRC 2ème année - UE32 67 Une classe abstraite est une description d objets destinée à être héritée par des classes plus spécialisées Une classe abstraite est utile si elle admet des sous-classes concrètes Toute classe concrète sous-classe d une classe abstraite DOIT concrétiser toutes les méthodes abstraites de cette dernière Une classe abstraite regroupe les caractéristiques communes à ses sous-classes et définit un comportement minimal commun SRC 2ème année - UE32 68 public class Animaux { public static void main(string[] argv) { Animal milou = new Chien(); Animal titi = new Canari(); milou.crier(); titi.crier(); public class Canari extends Animal { public void crier() { System.out.println(«Cui-cui!»); titi instanceof Canari => true milou instanceof Canari => false public abstract class Animal { public abstract void crier(); public class Chien extends Animal { public void crier() { System.out.println(«Ouah-Ouah!»); If (titi instanceof Canari) { SRC 2ème année - UE32 69 L héritage apporte la notion de sous-ensemble La composition (ou aggrégation) apporte la notion de composant Les relations : Héritage : «est un», «est une sorte de» : «a», «est composé de» Principe Associer des objets en les considérant comme un tout correct Une voiture a des roues. Si on déplace la voiture on déplace les roues. incorrect Un magasin a des clients. Le client ne fait pas partie du magasin. Une modification sur le magasin n agit pas sur le client SRC 2ème année - UE32 70 (2) Cela permet à un objet de faire remonter des informations Chacun sait de quoi il se compose et de quoi il est le composant public class Polygone { private Point p1; private Point p2; public void deplacer(int dx, int dy) { x = x + dx; y = y + dy; p1.deplacer(dx, dy); p2.deplacer(dx, dy); Rappel Java ne permet pas l héritage multiple Une classe ne peut dériver que d une classe Problème Reprenons l exemple utilisé pour les classes abstraites Le cri des animaux Comment ajouter le «coucou» de l horloge? Une solution Créer une super-classe abstraite «SystemeCrieur» et la dériver en «Animal» et «Horloge» Inconvénient : création de classes en masse et une hiérarchie sémantiquement incohérente SRC 2ème année - UE32 71 SRC 2ème année - UE

13 Solution proposée par Java Les interfaces Définition Une interface est une collection d opérations utilisées pour spécifier un service offert par une classe Une interface peut être vue comme une classe abstraite sans attributs (sauf des constantes) et dont toutes les méthodes sont abstraites Dessinable.java import java.awt.*; public interface Dessinable { public static final int NB = 5; public void dessiner(graphics g); public void effacer(graphics g); Les méthodes abstraites sont obligatoirement publiques Les attributs sont obligatoirement déclarés en static final (constantes) SRC 2ème année - UE32 73 SRC 2ème année - UE32 74 Réalisation Une interface est destinée à être réalisée (implémentée) par d autres classes La réalisation consiste pour la classe réalisatrice à Hériter des descriptions (méthodes et constantes) Concrétiser les méthodes abstraites Une interface = un contrat La classe réalisatrice «s engage» à fournir le service spécifié par l interface, à remplir le contrat Une classe peut s engager à remplir plusieurs contrats, elle peut réaliser plusieurs interface Utilisation du mot clé implements et séparation des interfaces avec des virgules Héritage multiple public class RectangleDessinable extends Rectangle implements Dessinable, Comparable { public void dessiner(graphics g) { g.drawrect(x, y, largeur, hauteur); public void effacer(graphics g) { g.clearrect(x, y, largeur, hauteur); public int compareto(object o) { if (o instanceof Rectangle) Méthode de l interface Comparable Méthodes de l interface Dessinable SRC 2ème année - UE32 75 SRC 2ème année - UE32 76 Utilisation Gestion des constantes Passage d un même ensemble de constantes à plusieurs classes même éloignées dans la hiérarchie Utiliser l interface comme un type Un objet est une instance de Sa classe Toutes les classes parentes de sa classe Toutes les interfaces que ses classes parentes ou lui implémente Toutes les interfaces parentes de ces interfaces ATTENTION : On ne peut pas créer directement un objet à partir d une interface, il faut passer par une classe pas de new MonInterface() public class FenetreGraphique implements Couleurs { private int nbfigures; private Dessinable[] figures; public void ajouter(dessinable o) { public void retirer(dessinable o) { public void dessiner(graphics g) { for (int i=0; i<nbfigures; i++) { figures[i].dessiner(g, ROUGE); public interface Couleur { public final static int BLEU = 1; public final static int ROUGE = 2; public final static int VERT = 3; SRC 2ème année - UE32 77 SRC 2ème année - UE

14 Héritage De la même manière qu une classe peut avoir des sous-classes, une interface peut avoir des «sousinterfaces» Une sous-interface Hérite de toutes les méthodes abstraites et des constantes de sa «super-interface» Peut définir de nouvelles méthodes abstraites et de nouvelles constantes Une classe qui réalise une interface doit implémenter toutes les méthodes abstraites définies dans l interface et dans les interfaces dont elle hérite Bilan Les interfaces permettent de s affranchir d éventuelles contraintes d héritage Lorsqu on examine une classe implémentant une ou plusieurs interfaces, on est sûr que le code d implémentation est dans le corps de la classe. Ce qui n est pas le cas avec l héritage. Les interfaces permettent une plus grande évolutivité du modèle objet Créer une interface ne modifie pas la hiérarchie de classes SRC 2ème année - UE32 79 SRC 2ème année - UE

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

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

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 5 : l héritage Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett Héritage Introduction - Pour raccourcir les temps d écriture

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

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

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

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.

POO 1/3 - Introduction à la Programmation Orientée Objet. Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2. POO 1/3 - Introduction à la Programmation Orientée Objet Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Sommaire Les Langages de Programmation Premier Programme Les Objets Objets

Plus en détail

Eléments de syntaxe du langage Java

Eléments de syntaxe du langage Java c jan. 2014, v3.0 Java Eléments de syntaxe du langage Java Sébastien Jean Le but de ce document est de présenter es éléments de syntaxe du langage Java : les types primitifs, les opérateurs arithmétiques

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

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

Éléments de base en Java (suite et fin)

Éléments de base en Java (suite et fin) Éléments de base en Java (suite et fin) P.O.O. LMI 2 Semestre 4 Option Info Année 2008-09 1/33 Éléments de base en Java (suite et fin) Année 2008-09 Plan du cours Les chaînes de caractères Retour vers

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

Héritage, et quelques petits mots-clés de Java

Héritage, et quelques petits mots-clés de Java Héritage, et quelques petits mots-clés de Java Bilan de la séance du 3 février. 1 Champs d instance, champs de classe La situation usuelle pour les attributs et les méthodes est la suivante : La classe

Plus en détail

Précis de vocabulaire Orienté Objet

Précis de vocabulaire Orienté Objet Dernière Mise à jour : Mars 2007 Précis de vocabulaire Orienté Objet 1 Questions Expliquer et donner un exemple pour chacun des concepts suivants 1. Qu'est-ce qu'un objet? 2. Qu'est-ce qu'une classe? 3.

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

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

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012

Université Mohammed Premier Année universitaire 2011-2012. Correction de l examen écrit de la session ordinaire 18 Février 2012 Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Correction de l examen écrit de

Plus en détail

Le langage Java - Syntaxe

Le langage Java - Syntaxe Le langage Java - Syntaxe CLASSES, INSTANCE,MÉTHODES,... CLASSE EN JAVA, PAS À PAS UTILISER DES CLASSES: C O=NEW C() UTILISER LES MÉTHODES: O.M() UNE CLASSE AVEC PLUSIEURS CONSTRUCTEURS LA SURCHARGE DES

Plus en détail

Chapitre 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Rappels sur l objet Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Objectifs de ce cours 2 Rappels sur les concepts fondamentaux liés à la

Plus en détail

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82

Java et Objet. Amélie Lambert 2014-2015. Amélie Lambert 2014-2015 1 / 82 Java et Objet Amélie Lambert 2014-2015 Amélie Lambert 2014-2015 1 / 82 Chapitre 5 Programmation orientée objet Amélie Lambert 2014-2015 2 / 82 Plan du cours Analyse, conception et programmation Orientée

Plus en détail

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet

Conception et Développement Orientés Objets Cours 1 : Introduction. 2 Les paradigmes de programmation. 3 Les concepts de la programmation objet CNAM UV 19357 Année 2003-2004 David Delahaye David.Delahaye@cnam.fr Conception et Développement Orientés Objets Cours 1 : Introduction 1 Présentation de la valeur Ce cours s adresse à toute personne ayant

Plus en détail

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage

Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Programmation en Java - TD4 M1 ISIFAR 2008 2009 Révisions et héritage Exercice 1. Toute réponse doit être justifiée. Vous proposerez une correction lorsque le code n est pas correct. 1. Le code suivant

Plus en détail

Programmation objet en Java.

Programmation objet en Java. Programmation objet en Java. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/7/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/7/ Cours Exercices Slide 1 1. Classes,

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 +Cours 2 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

Plus en détail

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main

Rappels Java. V.Marangozova-Martin. 1 Classes, instanciation, objets, main Rappels Java V.Marangozova-Martin 1 Classes, instanciation, objets, main Java est un langage pour la programmation orientée-objet (POO). La programmation par objets permet de structurer les programmes

Plus en détail

Cours 1 : Introduction Générale + Objet I

Cours 1 : Introduction Générale + Objet I Organisation du cours Équipe pédagogique DUT Informatique S3 - Programmation Java Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet I Jean-Claude MARTIN (Responsable, Cours, TD

Plus en détail

Le Langage Java et le Monde des Objets

Le Langage Java et le Monde des Objets . p.1 Le Langage Java et le Monde des Objets Les principes de la modélisation Orientée Objet. Qu est-ce qu une classe?. Les types de base. Utiliser les classes. Les tentacules de Java. . p.2 Bibliographie

Plus en détail

Cours d Analyse, Algorithmique Elements de programmation

Cours d Analyse, Algorithmique Elements de programmation 1 de 33 Cours d Analyse, Algorithmique Elements de programmation Florent Hivert Mél : Florent.Hivert@lri.fr Adresse universelle : http://www.lri.fr/ hivert 2 de 33 Données et instructions Un programme

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

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar

Programmation - Java - Fiches du Langage. Marie Beurton-Aimar Programmation - Java - Fiches du Langage Marie Beurton-Aimar Fiche Numéro 1 1.1 Structure d un programme Java Toutes les instructions se terminent par un ; Le nom du fichier qui contient une classe doit

Plus en détail

Listes de personnes et calculatrice polonaise inverse en Java

Listes de personnes et calculatrice polonaise inverse en Java Listes de personnes et calculatrice polonaise inverse en Java Université Paris Sud Motivation Le but de cet exercice est de manipuler les listes chaînées et les piles et de voir leur application en analyse

Plus en détail

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

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. Encapsulation L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets. La visibilité dépend des membres : certains membres peuvent être visibles et d'autres

Plus en détail

Cours 1. Contenu du cours : " Premières applications. " Compilation, Exécution, Chemin. " Affichage et saisie. " Types de données. " Flux de contrôle

Cours 1. Contenu du cours :  Premières applications.  Compilation, Exécution, Chemin.  Affichage et saisie.  Types de données.  Flux de contrôle Cours 1 1 Contenu du cours : " Premières applications " Compilation, Exécution, Chemin " Affichage et saisie " Types de données " Flux de contrôle " Applets " Arrays " OO de base Edition Le fichier texte

Plus en détail

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30

INF 103 Langage JAVA. Contrôle du 7 janvier 2015 Durée : 1h30 INF 103 Langage JAVA Contrôle du 7 janvier 2015 Durée : 1h30 Nom : Prénom : Casier : Groupe :........ Écrire les réponses directement sur les feuilles du sujet dans les cases prévues à cet effet. Le barème

Plus en détail

Programmation Objet. Cours 1

Programmation Objet. Cours 1 Programmation Objet. Cours 1 Marie-Pierre Béal UPEM DUT 1 Programmation objet. Classes et objets. Principaux styles de programmation Style impératif Fondé sur l exécution d instructions modifiant l état

Plus en détail

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA)

Syntaxe du langage JAVA. Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Syntaxe du langage JAVA Philippe Roose (IUT Bayonne) Olivier Dedieu (INRIA) Structure du langage Les types primitifs boolean(true/false), byte (1 octet), char (2 octets), short (2 octets), int (4 octets),

Plus en détail

6.1 Une classe simple pour représenter des comptes bancaires

6.1 Une classe simple pour représenter des comptes bancaires Chapitre 6 Héritage Ce chapitre du cours traite de concepts relatifs à la programmation objet (hiérarchie de classe, héritage, extension, masquage) et sera illustré par un exemple de représentation de

Plus en détail

Analyse statique de programmes Typage et analyse statique au sein de Java

Analyse statique de programmes Typage et analyse statique au sein de Java Analyse statique de programmes Typage et analyse statique au sein de Java Master Professionnel Informatique spécialité FSIL/FSI Jean-Marc Talbot jean-marc.talbot@lif.univ-mrs.fr Aix-Marseille Université

Plus en détail

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan

CSC4002 : Contrôle Final Session 1. Date : jeudi 26 janvier 2012 Durée : 1H30. Coordonnateurs : Christian Bac et Denis Conan Corrigé et Barème Contrôle de connaissances 2011/2012 des étudiants de 2 è année (EI2) CSC4002 : Contrôle Final Session 1 Date : jeudi 26 janvier 2012 Durée : 1H30 Coordonnateurs : Christian Bac et Denis

Plus en détail

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis

Java. Java. Le livrede. Avec 80 exercices corrigés. Avec 80 exercices corrigés. Le livre. Anne Tasso. 5 e édition. Un best-seller qui a déjà conquis Anne Tasso Un best-seller qui a déjà conquis des milliers d'étudiants! Java Le livre Java Le livrede de premier premier langage langage Avec 80 exercices corrigés Avec 80 exercices corrigés 5 e édition

Plus en détail

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction

Université Mohammed Premier Année universitaire 2011-2012. Complément d exercices avec correction Université Mohammed Premier Année universitaire 2011-2012 Faculté des Sciences Filière SMI Département de Mathématiques et d Informatique Module : POO Java Semestre : S5 Complément d exercices avec correction

Plus en détail

Programmation PHP Septembre 2010

Programmation PHP Septembre 2010 IFT1147 Programmation Serveur Web avec PHP Plan La POO en PHP Lecture du chapitre 20. Programmation par objets Introduction à la POO Objets et classes Propriétés Méthodes Private Héritage Polymorphisme

Plus en détail

PPOOGL. Florent de Dinechin. Java pour les nuls

PPOOGL. Florent de Dinechin. Java pour les nuls PPOOGL Florent de Dinechin Java pour les nuls Java en 30 minutes Introduction Grands principes Pour en finir avec l organisation Types de base et objets Le reste est dans le manuel PPOOGL 1 Introduction

Plus en détail

Université Mohammed Premier Année universitaire 2012-2013

Université Mohammed Premier Année universitaire 2012-2013 Université Mohammed Premier Année universitaire 2012-2013 Faculté des Sciences Filière SMI Département de Mathématiques Module : POO Java et d Informatique Semestre : S5 Responsable du cours : El Mostafa

Plus en détail

1.Programmation en Java : notions de base, orienté objet et héritage

1.Programmation en Java : notions de base, orienté objet et héritage Travaux pratique de Méthodologie et Langage de Programmation,, TP1 1 1.Programmation en Java : notions de base, orienté objet et héritage Cette séance de TP a pour objectif d'introduire à la programmation

Plus en détail

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe...

L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... L héritage Encore un petit topo des familles. Je pense qu'avec ce genre de chapitre, ce n'est pas du luxe... Une classe hérite d'une autre classe par le biais du mot clé extends. Une classe ne peut hériter

Plus en détail

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\

Avant de programmer en Java DOS Set Path=C:\JDK\bin Path=C:\JDK\bin C:\JDK\bin Set Path=%Path%;C:\JDK\bin C:\JDK\bin C:\JDK\ Exercices corrigés de programmation OO Java Préparés par : Mlle Imene Sghaier Année Académique : 2006-2007 Premiers Pas I. Avant de programmer en Java Le JDK de Sun (Java Development Kit) est l outil essentiel

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Une introduction au langage C++ Marc Jachym, Lurpa

Une introduction au langage C++ Marc Jachym, Lurpa Une introduction au langage C++ Marc Jachym, Lurpa Janvier 2008 À l origine, le langage C Langage procédural créé dans les années 1970 aux laboratoires Bell (ATT : télécoms américains) en vue d écrire

Plus en détail

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1

Polymorphisme. Programmation Orientée Objet. Jean-Christophe Routier Licence mention Informatique Université Lille 1 Polymorphisme Programmation Orientée Objet Jean-Christophe Routier Licence mention Informatique Université Lille 1 Université Lille 1 - Licence Informatique Programmation Orientée Objet 1 des méthodes

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

Programmation par les Objets en Java

Programmation par les Objets en Java Programmation par les Objets en Java Najib TOUNSI Les classes en Java (TD 3) I. Notion de classe I.1 Classe, champs, méthodes, instanciation, this, private vs. public. Créer une classe Point (coordonnée

Plus en détail

Mise à niveau en Java

Mise à niveau en Java Mise à niveau en Java Cours 1 Stéphane Airiau Université Paris-Dauphine Stéphane Airiau (Université Paris-Dauphine) - Java Cours 1 1 Aujourd hui Eléments de base Variables, opérateurs, type d une expression

Plus en détail

Concept de classes (1) Classes et objets en Java Master Informatique 1 ère année. Concept de classes (2) Concept de classes (3)

Concept de classes (1) Classes et objets en Java Master Informatique 1 ère année. Concept de classes (2) Concept de classes (3) Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Classes et objets en Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

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

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr Aide mémoire UML & Java 1ère partie : Introduction marc.lemaire@u-cergy.fr 16 septembre 2015 1 2015 v1.12 Table des matières 1 Généralités 6 1.1 Notations utilisées.....................................

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

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

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

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION

Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION EILCO ING 1 - POO Java Contrôle 2014/2015 Définitions de classes permettant de gérer Étudiant en Enseignant CORRECTION Dans ces exercices, nous allons définir une classe Personne qui permettra de gérer

Plus en détail

TP n 5 - Correction. IUP2 Année 2004-2005

TP n 5 - Correction. IUP2 Année 2004-2005 Université Paris 7 Programmation objet IUP2 Année 2004-2005 TP n 5 - Correction Héritage Exercice 1 Le cas d école modifié 1. Ecrivez une classe Figure. Cette classe a des attributs privés abcisse et ordonnée,

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

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

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

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

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

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Chapitre 2 : Conception de base de données relationnelle

Chapitre 2 : Conception de base de données relationnelle Chapitre 2 : Conception de base de données relationnelle Le modèle entité-association 1. Les concepts de base 1.1 Introduction Avant que la base de données ne prenne une forme utilisable par le SGBD il

Plus en détail

Cours 1 : Introduction Générale + Objet

Cours 1 : Introduction Générale + Objet Organisation du cours Équipe pédagogique L2 S4 2009 : 2010 Programmation Objet Jean-Claude MARTIN MARTIN@LIMSI.FR Cours 1 : Introduction Générale + Objet 10 cours de 1h30 o Jean-Claude MARTIN (MARTIN@LIMSI.FR)

Plus en détail

Une classe est une sorte de type de données définie par le programmeur Variables peuvent être de type classe

Une classe est une sorte de type de données définie par le programmeur Variables peuvent être de type classe Classe, Objet Variables locales Niveaux de visibilité (Encapsulation) Attributs et Méthodes Statiques Surcharge des Méthodes Transmission des Paramètres Paquetage Classes pour les types de base POO 1 Une

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

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

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1

Cours1 +Cours 2. Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Cours1 +Cours 2 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

Plus en détail

Licence Informatique Année 2005-2006

Licence Informatique Année 2005-2006 Université Paris 7 Java Licence Informatique Année 2005-2006 TD n 6 - Correction Héritage Exercice 1 On modélise une application devant servir à l inventaire d une bibliothèque. Elle devra traiter des

Plus en détail

Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA Formation CNAM

Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA Formation CNAM Examen 1 ère session 2012-2013 page 1 NFA 031 - Programmation JAVA IPST-CNAM Programmation JAVA NFA 001 Mercredi 13 Février 2013 Avec document Durée : 2 h30 Enseignant : LAFORGUE Jacques 1 ère Session

Plus en détail

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5

Introduction à l algorithmique et à la programmation 2013-2014. Cyril Nicaud Cyril.Nicaud@univ-mlv.fr. Cours 1 / 5 Introduction à l algorithmique et à la programmation IUT 1ère année 2013-2014 Cyril Nicaud Cyril.Nicaud@univ-mlv.fr Cours 1 / 5 Déroulement du cours Organisation : 5 séances de 2h de cours 10 séances de

Plus en détail

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

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) CLASSE RACINE Object ancêtre de toutes les classes RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION) définit donc des méthodes héritées par toutes

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

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs

public class StaticExample { private static int compteur; public static double pi = 3.14159; } utilisation de la notation. respect des modificateurs static static : usage Le rôle essentiel d un moule est de permettre la création d objets. mais un moule a également des caractéristiques Il en est de même pour une classe. Usage : La déclaration des attributs

Plus en détail

Algorithmique et programmation avec Java (NFA002)

Algorithmique et programmation avec Java (NFA002) Algorithmique et programmation avec Java (NFA002) Deuxième session 13 septembre 2012 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : listes (4 points) Etudiez le programme

Plus en détail

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage Grandes lignes du cours Cours JAVA : Le polymorphisme en Java. Version 4.01 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

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

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting

Cours de Java. Benjamin FAUCHER Cubis-Helios Consulting Cours de Java Benjamin FAUCHER Cubis-Helios Consulting Cours 1 : Les bases du Langage Java 1/2 I. Introduction II. Compilation III. Rappel sur la POO IV. Les classes Java V. Syntaxe de base du Java Langage

Plus en détail

Programmation Orientée Objet - Licence TIS CM2/9

Programmation Orientée Objet - Licence TIS CM2/9 Programmation Orientée Objet - Licence TIS CM2/9 Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.fr Poitiers, le 13/01/2006 1 2 3 4 5 Rappel sur la séance précédente La fois précédente, nous avons

Plus en détail

UML Conception Héritage. Emmanuel Pichon 2013

UML Conception Héritage. Emmanuel Pichon 2013 UML Conception Héritage 2013 Héritage (generalization) Sens Relation d implémentation permettant la réutilisation des caractéristiques d une classe (attributs, opérations et associations) Notation UML

Plus en détail

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir

Java. Partie 1 : QCM. Consignes pour le bons déroulement du devoir Consignes pour le bons déroulement du devoir - Ce document comporte un QCM et une partie où il faut écrire du code en - Marquez vos réponses au QCM sur la feuille de réponses fournie (notez que certaines

Plus en détail

Introduction au langage Java

Introduction au langage Java Introduction au langage Java Nicolas Dumoulin nicolas.dumoulin@cemagref.fr Cemagref Laboratoire d ingénierie pour les systèmes complexes 2010 Notes aux lecteurs Ce document est un support de cours qui

Plus en détail

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java

Introduction au Java Development Kit Et quelques instructions en Java. 1 Création des répertoires d accueil des programmes Java HLIN406 - Janvier 2015 Le Java Development Kit offre un ensemble d outils de développement d applications Java. Pour utiliser ces outils, JDK ne propose pas d interface utilisateur, on doit donc écrire

Plus en détail

Travaux dirigés : Programmation Orientée objet

Travaux dirigés : Programmation Orientée objet Travaux dirigés : Programmation Orientée objet Exercice 1: Créer un projet c# qui permet de gérer les voitures sachant que une voiture est caractérisée par sa matricule, marque, puissance 1. Les attributs

Plus en détail

Introduction aux méthodes Orientées Objets Troisième partie

Introduction aux méthodes Orientées Objets Troisième partie Introduction aux méthodes Orientées Objets Troisième partie Modélisation avec UML 2.0 Programmation orientée objet en C++ Pré-requis: maitrise des bases algorithmiques (cf. 1 ier cycle), maitrise du C

Plus en détail

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15

3 ElementsdeprogrammationJava 15 3.1 Premierspas... 15 Tabledesmatières 1 IntroductionaulangageJava 1 1.1 EnvironnementJava... 1 1.1.1 Compilation... 2 1.1.2 Interprétation... 2 1.2 Programmationorientée-objet... 2 1.2.1 Classe... 3 1.2.2 Objet... 4 2 Syntaxedulangage

Plus en détail

Exercice 1 (API Java)

Exercice 1 (API Java) Programmation orientée objet TP 3 L2 MPCIE API Java, Paquetages Exercice 1 (API Java) 1. Écrire la classe Ensemble comme étant une collection d'éléments ne contenant pas de doublon. Elle sera donc implémentée

Plus en détail

Notions de programmation orientée objet

Notions de programmation orientée objet 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/04/2007 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent,

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

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1

Cours 13. Les classes abstraites Les méthodes abstraites Les interfaces. F. Gayral 1 Cours 13 Les classes abstraites Les méthodes abstraites Les interfaces F. Gayral 1 Un exemple pour mieux comprendre Pas d'instanciation d'un humain : un humain, c'est - soit un homme - soit une femme Humain

Plus en détail

Bases de la programmation orientée objet en Java

Bases de la programmation orientée objet en Java Bases de la programmation orientée objet en Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-33 Avant propos Difficultés...

Plus en détail

Esnard Aurélien cours de Java ENSERB informatique. Sommaire

Esnard Aurélien cours de Java ENSERB informatique. Sommaire Sommaire Avertissement : Le présent cours fait référence à la version 1.2 de Java, aussi appelé Java 2. Sommaire 1 Sommaire 2 Chapitre 1 Les bases du langage Java 5 Les données 5 Les primitives 5 Table

Plus en détail

1. Les fondements de l informatique 13

1. Les fondements de l informatique 13 Introduction à l'algorithmique 1. Les fondements de l informatique 13 1.1 Architecture de Von Neumann 13 1.2 La machine de Turing 17 1.3 Représentation interne des instructions et des données 19 1.3.1

Plus en détail

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau

Plan. Tableaux. Utilité. Définition. Exemples. Déclaration d un tableau Plan Tableaux Université de Nice - Sophia Antipolis Richard Grin Version 1.0.4 25/11/10 Définition Déclaration d un tableau Création d un tableau Utilisation d un dun tableau Tableau des paramètres de

Plus en détail