La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen

Présentations similaires


Présentation au sujet: "Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen"— Transcription de la présentation:

1 Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian Anne-Marie Pinna Dery

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

3 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; }

4 Usage du mot-clé this dans une classe this désigne linstance sur laquelle sexé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); }

5 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

6 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

7 Attributs (fields), variables dinstances 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;

8 Attributs (fields), variables dinstances – 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

9 Attributs (fields), variables dinstances – 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 nest pas int ERREUR y est visible dans le bloc (bloc {…}) dans lequel il est défini (déclaré)

10 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

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

12 API Java : à quoi ça vous sert ? Javadoc de l'API. Rechercher des informations et Comprendre un code existant

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

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

15 Comment chercher dans lAPI ? 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 ?

16 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

17 Erreurs à la compilation et à lexécution Compilation : Vérification de la syntaxe Vérification du typage Exécution : probléme dalgorithme des objets null des dépassements de bornes

18 Utilisation dune 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 LORDRE DE COMPILATION Et à la visibilité


Télécharger ppt "Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen"

Présentations similaires


Annonces Google