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

ESIEE Paris © Denis BUREAU 2012 1 I N 1 0 1 Initiation à la programmation avec le langage Java.

Présentations similaires


Présentation au sujet: "ESIEE Paris © Denis BUREAU 2012 1 I N 1 0 1 Initiation à la programmation avec le langage Java."— Transcription de la présentation:

1 ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java

2 ESIEE Paris © Denis BUREAU IN101 - Cours Cours 1.2 I. Suite du cours 1.1 II. Déclarations III. Instructions simples IV. Objets et références

3 ESIEE Paris © Denis BUREAU IN101 - Cours I. I. Suite du cours 1.1 I.1 Généralités I.2 Nommage I.3 Commentaires et documentation I.4 Types de données

4 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.2 I.2 Nommage (Obligations et Conventions obligatoires) V.2.1 O: Identificateur : lettres, chiffres, _, sans chiffre initial, sauf mot réservé V.2.2 C: UneClasse (majuscule initiale) => O: fichier UneClasse.java (UneClasse.class) V.2.3 C: aNomAttribut, verbeMethode(), pNomParametre, vNomVariableLocale V.2.4 O: exception: le constructeur (= nom de la classe), contradiction ?

5 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.3 I.3 Commentaires et documentation I.3.1 le commentaire de code I.3.2 le commentaire javadoc I.3.3 les conseils pour la javadoc I.3.4 le commentaire de suppression temporaire I.3.5 la javadoc dans BlueJ

6 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.3.1 I.3.1 Le commentaire de code // jusqu'à la fin de la ligne (ignoré par le compilateur) Exemple : bla bla bla; // commentaire

7 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I I.3.2 Le commentaire javadoc /** jusqu'à */ même sur plusieurs lignes (ignoré par le compilateur, mais pas javadoc) I.3.3 Les conseils pour la javadoc /**... */ AVANT chaque classe et AVANT chaque méthode a) Classe b) Méthode c) Lire ce guideguide

8 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.3.4 I.3.4 Le commentaire de suppression temporaire /* jusqu'à */ même sur plusieurs lignes ou intra-ligne (ignoré par le compilateur) attention ! pas d'imbrication, à conserver pour déboguer /* X /* Y */ Z */ Exemple : bla /* bla */ bla;

9 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.3.5 I.3.5 La javadoc dans BlueJ bouton implémentation ( source java) attributs privés et instructions interface ( javadoc) signatures publiques

10 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.3 I.3 Commentaires et documentation I.3.1 le commentaire de code I.3.2 le commentaire javadoc I.3.3 les conseils pour la javadoc I.3.4 le commentaire de suppression temporaire I.3.5 la javadoc dans BlueJ

11 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – I.4 I.4 Types de données I.4.1 Entier : int (+- / non nul / chiffres, défaut: 0) I.4.2 Booléen : boolean ( false ou true, défaut: false) I.4.3 Chaîne : String ("c", "des mots", défaut: "")

12 ESIEE Paris © Denis BUREAU IN101 - Cours I. I. Suite du cours 1.1 I.1 Généralités I.2 Nommage I.3 Commentaires et documentation I.4 Types de données

13 ESIEE Paris © Denis BUREAU IN101 - Cours II. II. Déclarations II.1 Classe II.2 Attribut II.3 Fonction II.4 Procédure II.5 Constructeur II.6 Paramètres II.7 Variable locale II.8 Initialisation II.9 Différence déclaration / définition II.10 Durée de vie / visibilité II.11 Exemple complet (sans les instructions)

14 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.1 II.1 Classe Dans le fichier NomClasse.java : public class NomClasse { attributs (o.i.) constructeurs (o.i.) autres méthodes (o.i.) } // NomClasse (o.i.) = ordre indifférent

15 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.2 II.2 Attribut private Type aNomAttribut; protège de l'extérieur de la classe ==> un autre objet de la même classe peut y accéder !

16 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.3 II.3 Fonction public Type nomFonction( L.P.F. ) { instructions ; return expression ; } // nomFonction L.P.F. = Liste des Paramètres Formels

17 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.4 II.4 Procédure public void nomProc( L.P.F. ) { instructions ; } // nomProc L.P.F. = Liste des Paramètres Formels

18 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.5 II.5 Constructeur 1/2 public /*rien*/ NomClasse( L.P.F. ) { instructions ; } // NomClasse() L.P.F. = Liste des Paramètres Formels

19 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.5 II.5 Constructeur 2/2 rôle = initialiser les attributs ==> constructeur naturel : autant de paramètres que d'attributs ==> instructions dans l'ordre des attributs mais surcharge ==> plusieurs constructeurs ==> plusieurs moyens d'initialiser un objet (exemple: "origine" ==> 0,0)

20 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.6 II.6 Paramètres 1/2 L.P.F. = aucun P. OU 1 P. OU plusieurs P. aucun P.: /*rien*/ => () obligatoires ! 1 P.: final Type pNomParamètre plusieurs P.: final Type1 pNomParamètre1, final Type2 pNomParamètre2

21 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.6 II.6 Paramètres 2/2 final souvent oublié, mais évite certaines erreurs car le compilateur peut vérifier que le paramètre n'est jamais modifié => il faut le mettre systématiquement !

22 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.7 II.7 Variable locale Type vNomVarLocale; en tête du corps d'une méthode OU juste avant d'en avoir besoin Attention ! non initialisée par défaut !

23 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.8 II.8 Initialisation Type vNomVarLocale = valeurInitiale ; Impossible pour les paramètres Ne pas utiliser pour les attributs (rôle du constructeur)

24 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.9 II.9 Différence déclaration / définition II.9.1 Classe : toujours définition II.9.2 Méthode : - déclaration = juste signature (plus tard !) - définition = déclaration + corps II.9.3 Variable : - déclaration = juste type + nom - définition = déclaration + initialisation

25 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.10 II.10 Durée de vie / visibilité II.10.1 Attribut : durée de vie de l'objet / interne à la classe II.10.2 Paramètre (formel) : pendant l'exécution de la méthode / interne à la méthode II.10.3 Variable locale : depuis sa déclaration jusqu'à la fin du bloc / interne au bloc

26 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.11 II.11 Exemple (sans les instructions) 1/3 /** classe Cercle * (exemple sans les instructions) */ public class Cercle { // Attributs : private int aRayon; private boolean aPlein; private String aNom;

27 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.11 II.11 Exemple (sans les instructions) 2/3 /** constructeur naturel */ public Cercle( final int pRayon, final boolean pPlein, final String pNom ) { /* recopie des 3 param dans les attributs corresp */ } // Cercle(...) /** constructeur sans parametre */ public Cercle() { /* initialisation des 3 attributs avec des valeurs par défaut choisies */ } // Cercle()

28 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – II.11 II.11 Exemple (sans les instructions) 3/3 /** fonc qui calc & retourne le diametre */ public int getDiametre() { int vDiametre; // VL non initialisee /* calcule et retourne la valeur du diamètre */ } // getDiametre() /** proc daffichage du cercle courant */ public void affiche() { String vCh = "cercle"; // VL initialisee /* construit la chaine vCh selon les attributs puis affiche vCh */ } // affiche(.) } // Cercle

29 ESIEE Paris © Denis BUREAU IN101 - Cours II. II. Déclarations II.1 Classe II.2 Attribut II.3 Fonction II.4 Procédure II.5 Constructeur II.6 Paramètres II.7 Variable locale II.8 Initialisation II.9 Différence déclaration / définition II.10 Durée de vie / visibilité II.11 Exemple complet (sans les instructions)

30 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III. III. Instructions simples III.1 instruction(s) III.2 affectation III.3 retour de résultat III.4 fin de méthode III.5 affichage

31 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III.1 III.1 Instruction(s) Toute instruction ou déclaration se termine par un ; (même avant une } ) { des instructions } = un bloc = une instruction composée => compte pour une seule instruction !

32 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III.2 III.2 Affectation ou assignation ou car non symétrique variable= expression; variable : aNomAttribut ou vNomVarLocale initialisation déclaration + affectation

33 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III.3 III.3 Retour de résultat uniquement dans une fonction : return expression ; même type que dans la signature instruction expression voir plus loin la définition d'une expression

34 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III.4 III.4 Fin de méthode uniquement dans une procédure : return; facultatif : - ne sert à rien à la fin - permet de terminer prématurément

35 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III.5 III.5 Affichage non graphique ==> terminal, console / linux, dos, BlueJ : System.out.println( uneString ); III.5.1 concaténation de String : " une " + " " + " phrase " " une phrase " III.5.2 concaténation d'un type primitif : "Resultat=" + vRes "Resultat=12" si vRes vaut 12 III.5.3 println print

36 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – III. III. Instructions simples III.1 instruction(s) III.2 affectation III.3 retour de résultat III.4 fin de méthode III.5 affichage

37 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV. IV. Objets et références IV.1 création d'un nouvel objet IV.2 classe spéciale IV.3 accès à un attribut IV.4 appel de méthode IV.5 appels successifs IV.6 exemple (avec les instructions)

38 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.1 IV.1 Création d'un nouvel objet Cercle vC2; ne crée pas de cercle ! vC2= new Cercle (); ou vC2= new Cercle ( param_effectifs ); appel automatique du constructeur avec les mêmes paramètres référence pointeur adresse reference type = type objet référence spéciale : null => pas dobjet ! vC2

39 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.2 IV.2 Classe spéciale String : ne nécessite pas d'appel de constructeur String vM; puis vM= "mot"; remplace vM= new String("mot"); paramètre effectif très utilisée, beaucoup de méthodes (exemple: length() ), opérateur +

40 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.3 IV.3 Accès à un attribut dans une méthode de la même classe : vC2.aNomAttribut (sur l'objet vC2) ou this.aNomAttribut this = référence spéciale, à l'objet courant (objet sur lequel a été appelée la méthode)

41 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.4 IV.4 Appel de méthode vC2.move( param_effectifs ); ou vS= vC2.surface(); (sur l'objet vC2) this.move( param_effectifs ); ou vS= this.surface(); (rappel : this = l'objet courant) l'appel de procédure est un exemple d'instruction et l'appel de fonction est un exemple d'expression

42 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.5 IV.5 Appels successifs pour les attributs référence ou les fonctions qui retournent une référence : this.aChaine.length() ou this.getChaine().length() la dernière peut être une procédure : this.getCercle().deplace(10,20);

43 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.6 IV.6 Exemple (avec les instructions) 1/4 /** classe Cercle * (exemple avec les instructions) */ dans le fichier Cercle.java public class Cercle { // Attributs : private int aRayon; private boolean aPlein; private String aNom;

44 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.6 IV.6 Exemple (avec les instructions) 2/4 /** constructeur naturel */ public Cercle( final int pRayon, final boolean pPlein, final String pNom ) { this.aRayon = pRayon; // affectation this.aPlein = pPlein; this.aNom = pNom; } // Cercle(...) /** constructeur sans parametre */ public Cercle() { this.aRayon = 10; this.aPlein = false; this.aNom = "anonyme"; // ces 3 instruc. n'en feront plus qu'une lorsqu'on saura appeler l'autre constructeur } // Cercle()

45 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.6 IV.6 Exemple (avec les instructions) 3/4 /** fonc qui calc & retourne le diametre */ public int getDiametre() { int vDiametre; // VL non initialisee vDiametre = 2 * this.aRayon; // affect. return vDiametre; } // getDiametre() /** proc daffichage du cercle courant */ public void affiche() { String vCh = "cercle"; // VL initialisee vCh = vCh + " " + this.aNom + " : "; // c. vCh = vCh + this.getDiametre(); // a.m. System.out.print( vCh ); // affichage } // affiche() } // Cercle

46 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV.6 IV.6 Exemple (avec les instructions) 4/4 dans le fichier Essai.java /** classe de test de la classe Cercle */ public class Essai { // pas d'attributs /** procédure de test */ public void lance() { Cercle vC1 = new Cercle( 20,true,"c1" ); Cercle vC2 = new Cercle(); int vD1 = vC1.aRayon * 2; // interdit int vD1 = vC1.getDiameter(); // OK vC2.affiche(); // OK } // lance() } // Essai

47 ESIEE Paris © Denis BUREAU IN101 - Cours 1.2 – IV. IV. Objets et références IV.1 création d'un nouvel objet IV.2 classe spéciale IV.3 accès à un attribut IV.4 appel de méthode IV.5 appels successifs IV.6 exemple (avec les instructions)

48 ESIEE Paris © Denis BUREAU IN101 - Cours A apprendre : I. Suite du cours 1.1 II. Déclarations III. Instructions simples IV. Objets et références Lire le poly : tout jusqu'à la section 2.2, sections 4, 5.2.0, 7.1, 7.2, 8.1, et annexes 6 & 7


Télécharger ppt "ESIEE Paris © Denis BUREAU 2012 1 I N 1 0 1 Initiation à la programmation avec le langage Java."

Présentations similaires


Annonces Google