• 0:00
    /
    0:00
    Loaded: 0%
    0:00
    Progress: 0%
    Stream TypeLIVE
    0:00
     
    1x
    Advertisement

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