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

SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian

Présentations similaires


Présentation au sujet: "SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian"— 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 d’instances 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; 3

4 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

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 6

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

8 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

9 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é)

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
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

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 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 ?

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 l’information ? Que fait getInput()?

15 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 ?

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 16

17 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

18 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é


Télécharger ppt "SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian"

Présentations similaires


Annonces Google