SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian

Slides:



Advertisements
Présentations similaires
La programmation orientée objet avec Java L3-MIAGE Plan
Advertisements

Spécialisation/généralisation Héritage Polymorphisme
Le mécanisme des exceptions
Introspection et Réflexion Manipulation dynamique de code Java.
Au programme du jour …. Ce que vous navez pas encore vu Constantes et variables de classe Main et Tests Utilisation de lAPI Existence des packages Existence.
Au programme du jour …. Introduction à lhéritage Un concept important de la programmation objet Livraison de code Organisation des répertoires et packages.
Introduction à la programmation objet Langage Java
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction à la Programmation Orientée Objet Langage Java
Au programme du jour …. Livraison de code Organisation des répertoires et packages Ce que vous navez pas encore vraiment vu Constantes et variables de.
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Approfondissement du langage
(Classes prédéfinies – API Java)
C.
Programmer en JAVA par Tama
Programmation Objet en JAVA Mise à Niveau
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
Tarak Chaari, Stéphane Frénot, Frédérique Laforest, Frédéric Le-Mouël JAV1 JAV – TD 5 Lhéritage en Java.
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
IJA - TD 2 Bases du langage
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Programmation par Objets et Java
Principes de programmation (suite)
Introduction à la Programmation Orientée Objet Langage Java
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Langage Oriente Objet Cours 4.
Principes de programmation (suite)
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Introduction à la programmation (Java)
Langage Oriente Objet Cours 2.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 5 – Héritage, Interfaces et Listes génériques.
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction au paradigme orienté-objet (suite)
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
1 IFT 6800 Atelier en Technologies dinformation Le langage de programmation Java chapitre 3 : Classes et Objects.
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
COURS DE PROGRAMMATION ORIENTEE OBJET :
CSI 1502 Principes fondamentaux de conception de logiciels
Java, les objets : tout de suite ! Rassembler, grouper les objets
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Les méthodes en java • Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. • Une méthode pour être utilisée.
4 Introduction des objets. Les chaînes et tableaux
Programmation en Java Tableaux NGUYEN Thi Minh Tuyen
La notion de type revisitée en POO
Cours 61 6 La sécurité, Portée, Visibilité Programmer avec sécurité.
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Variables et accès en Java. Déclaration des variables final transient static private Printer hp; transient => ne doivent pas être sérialisées volatile.
Tutorat en bio-informatique
Master 1 SIGLIS Java Lecteur Stéphane Tallard Chapitre 3 – Classes et objets en Java Master 1 SIGLIS1 Java Lecteur - Chapitre 3 Classes et objets en Java.
Strings et Tableaux en Java
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours du 5 novembre.
IUT du Limousin L.U.P Michel Vergnaud Programmation Objet - Java.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Héritage Conception par Objet et programmation Java
22 Concepts de base du langage Java. 2-2 Objectifs A la fin de ce cours, vous serez capables de : Identifier les éléments essentiels de Java Identifier.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy – 10 novembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
Transcription de la présentation:

Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen cohen@inria.sophia.fr Igor Litovsky lito@polytech.unice.fr Christophe Papazian papazian@polytech.unice.fr Anne-Marie Pinna Dery pinna@polytech.unice.fr http://courswiki.polytech.unice.fr/SI3/IPA

Instances et une classe Circle circle1=new Circle(50,80,30); Allocation mémoire pour toutes les variables d’instances et affectation des valeurs

Constructeurs Surcharge des Constructeurs : signatures différentes On peut aussi surcharger des méthodes Les constructeurs par défaut sont conseillés Appel des constructeurs en cascade public Circle() { this(0,0 ,”red”,12); } public Circle(int x,int y)‏ this(x,y,”red”,12); public Circle(int x,int y,String c,int diameter)‏ xPosition = x; yPosition = y; this.diameter=diameter; color=c; isVisible=true; 3

Usage du mot-clé this dans une classe this désigne l’instance sur laquelle s’exécute le code public Circle(int x,int y,String c,int diameter)‏ { xPosition = x; yPosition = y; this.diameter=diameter; color=c; isVisible=true; } xPosition raccourci d’écriture de this.xPosition getXposition() raccourci d’écriture de this.getXPosition() this pour appeler un autre constructeur : appels en cascade public Circle() this(0,0 ,”red”,12); 4

2 types de méthode Méthodes qui sont des fonctions : Déclaration : public int getXPosition()‏ {…} Appel : Point p = new Point(); int x = p.getXPosition(); int x = p.getXPosition() + distance; System.out.println(p.getXPosition()); p.getXPosition(); ERREUR getXPosition(p); ERREUR

2 types de méthode Méthodes qui sont des procédures Déclaration : public void showCoord()‏ {….} public void setX(int x) {…..} Appel : p.showCoord(); p.setX(12); int x = p.setX(12); ERREUR System.out.println(p.setX(12)); ERREUR 6

Attributs (fields), variables d’instances paramètres – variables locales Déclaration : private int abscisse; private int abscisse = 10; abscisse est de type entier Utilisation dans toute la classe this.abscisse; ou abscisse; Affectation des valeurs initiales dans le constructeur : this.abscisse = 10; this.abscisse = abscisse;

Attributs (fields), variables d’instances – paramètres – variables locales Déclaration : public void setX(int p) {…….} p est le paramètre formel de setX p est de type entier et est visible dans le corps de la méthode Utilisation : abscisse=p; p=12: INUTILE ECRASE Appel : Point pt = new Point(12,34); pt.setX(25); 25 est le paramètre effectif pt.setX(25.5); ERREUR

Attributs (fields), variables d’instances – paramètres – variables locales Déclaration : int y; int y = 0; Utilisation : y = 0; y++; ++y; y=y*10; y=12,5 ERREUR y = x; si x n’est pas int ERREUR y est visible dans le bloc (bloc {…}) dans lequel il est défini (déclaré)

Types int x = 0; entier double y = 12,5; réel float z = 12,5; réel ... String s = “Coucou”; String s= new String(“Coucou”); Classe prédéfinie chaîne de caractères boolean b = true; true et false On peut affecter un entier dans un double, un float dans un double pas le contraire. x=y; y=x; z=x; x=z; z=y; y=z; ?????? Si nécessaire on peut faire des cast explicites y=(double)x; x=(int) y; ????? Toutes les classes API Java : java.lang java.util Il existe les classes Integer, Boolean, Double, Float

Opérateurs et Comparateurs Un opérateur particulier : . Opérateurs sur les entiers, double, float : +, -, *, Opérateurs sur les String : + Opérateurs logiques : &, &&, !, |, || Attention au = instruction d’affectation Comparateurs : ==, >=, <=, >, < Pour les chaines de caractères : .equals() 11

API Java : à quoi ça vous sert ? http://java.sun.com/javase/7/docs/api/index.html: Javadoc de l'API. Rechercher des informations et Comprendre un code existant

API Java : Rechercher des informations sur les types de données que l’on manipule ou que l’on souhaite manipuler ? ArrayList : Peut on ajouter un élément à une position donnée ? Peut on enlever à une position donnée ? Qu’existe-t-il comme autre type de données du même style ? Comment construit on une ArrayList ? Avec un tableau est ce possible ?

API Java : Comprendre un code existant String input = reader.getInput(); if(input.startsWith("bye")) { finished = true; } Que fait startsWith("bye") ? Comment peut on trouver l’information ? Que fait getInput()?

Comment chercher dans l’API ? Organisation par packages Quels sont les packages que vous connaissez ? java.util java.lang Où pouvez vous trouver la classe String ? La classe ArrayList ? Quels sont les packages qui pourront vous servir ?

particularité de toString public String toString()‏ { return " x : " + xPosition + " y: " + yPosition + " diamètre: " + diameter + " couleur: " + color; } …. Fonction ou procédure ? System.out.println(circle1); System.out.println(circle1.toString()); Comportement par défaut – Héritage de Object Toutes les classes héritent de Object 16

Erreurs à la compilation et à l’exécution Vérification de la syntaxe Vérification du typage Exécution : probléme d’algorithme des objets null des dépassements de bornes 17

Utilisation d’une classe par une autre Exemple : la classe de test utilise la classe testée De la classe Cercle utilise la classe Point javac ClasseAtester.java -> erreurs ou création du fichier ClasseAtester.class javac TestDEClasseAtester.java -> erreurs ou création du fichier TestDeClasseAtester.class java TestDeClasseAtester -> erreurs et/ou exécution du code ATTENTION A L’ORDRE DE COMPILATION Et à la visibilité