1 / 48

I N 1 0 1

I N 1 0 1. Initiation à la programmation avec le langage Java. IN101 - Cours 1.2 -. Cours 1.2 I. Suite du cours 1.1 II. Déclarations III. Instructions simples IV. Objets et références. IN101 - Cours 1.2 - I. I. Suite du cours 1.1 I.1 Généralités   I.2 Nommage

ted
Download Presentation

I N 1 0 1

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. I N 1 0 1 Initiation à la programmation avec le langage Java

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

  3. IN101 - Cours 1.2 - 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. 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. 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. 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. IN101 - Cours 1.2 – I.3.2+3 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 etAVANT chaque méthode • a) Classe : @author et @version • b) Méthode : @param et @return • c) Lire ce guide

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

  9. 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. 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. IN101 - Cours 1.2 – I.4 I.4 Types de données • I.4.1 Entier : int(+- / non nul / chiffres, défaut: 0)-1 23 +456 • I.4.2 Booléen : boolean(false ou true, défaut: false) • I.4.3 Chaîne : String("c", "des mots", défaut: "")

  12. IN101 - Cours 1.2 - 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. IN101 - Cours 1.2 - II. • 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) II. Déclarations • II.1 Classe • II.2 Attribut • II.3 Fonction • II.4 Procédure • II.5 Constructeur • II.6 Paramètres

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

  15. IN101 - Cours 1.2 – II.2 II.2 Attribut privateTypeaNomAttribut; protège de l'extérieur de la classe ==> un autre objet de la même classe peut y accéder !

  16. IN101 - Cours 1.2 – II.3 II.3 Fonction publicTypenomFonction(L.P.F.){ instructions; returnexpression; } // nomFonction L.P.F. = Liste des Paramètres Formels

  17. IN101 - Cours 1.2 – II.4 II.4 Procédure publicvoidnomProc(L.P.F.){ instructions; } // nomProc L.P.F. = Liste des Paramètres Formels

  18. IN101 - Cours 1.2 – II.5 II.5 Constructeur1/2 public /*rien*/NomClasse(L.P.F.){ instructions; } // NomClasse() L.P.F. = Liste des Paramètres Formels

  19. IN101 - Cours 1.2 – II.5 II.5 Constructeur2/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. 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.: finalType1pNomParamètre1, finalType2pNomParamètre2

  21. IN101 - Cours 1.2 – II.6 II.6 Paramètres 2/2 finalsouvent 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. 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. IN101 - Cours 1.2 – II.8 II.8 Initialisation TypevNomVarLocale =valeurInitiale; • Impossible pour les paramètres • Ne pas utiliser pour les attributs(rôle du constructeur)

  24. 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. 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. IN101 - Cours 1.2 – II.11 II.11 Exemple (sans les instructions) 1/3 /** classe Cercle * (exemple sans les instructions) */ publicclass Cercle { // Attributs : privateint aRayon; privateboolean aPlein; privateString aNom;

  27. 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. 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 d’affichage du cercle courant */ public void affiche() { String vCh = "cercle"; // VL initialisee /* construit la chaine vCh selon les attributs puis affiche vCh */ } // affiche(.) } // Cercle

  29. IN101 - Cours 1.2 - II. • 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) II. Déclarations • II.1 Classe • II.2 Attribut • II.3 Fonction • II.4 Procédure • II.5 Constructeur • II.6 Paramètres

  30. 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. IN101 - Cours 1.2 – III.1 III.1 Instruction(s) • Toute instruction ou déclarationse termine par un ;(même avant une }) • { des instructions }= un bloc = une instruction composée=> compte pour une seule instruction !

  32. 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. IN101 - Cours 1.2 – III.3 III.3 Retour de résultat • uniquement dans une fonction : • returnexpression; • même type que dans la signature • instruction ≠ expression • voir plus loin la définition d'une expression

  34. 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. 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"  → "unephrase" • III.5.2 concaténation d'un type primitif :"Resultat=" + vRes→ "Resultat=12" si vRes vaut 12 • III.5.3println ≠ print

  36. 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. 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. IN101 - Cours 1.2 – IV.1 IV.1 Création d'un nouvel objet • Cercle vC2;ne crée pas de cercle ! • vC2=newCercle(); ouvC2= new Cercle(param_effectifs); • appel automatique du constructeuravec les mêmes paramètres • référence ≡ pointeur ≡ adresse • reference type = type objet • référence spéciale : null => pas d’objet ! vC2

  39. 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"; remplacevM= new String("mot"); ← paramètre effectif • très utilisée, beaucoup de méthodes (exemple: length()), opérateur +

  40. 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. 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. 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()outhis.getChaine().length() • la dernière peut être une procédure : • this.getCercle().deplace(10,20);

  43. 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 publicclass Cercle { // Attributs : privateint aRayon; privateboolean aPlein; privateString aNom;

  44. 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. 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 d’affichage 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. 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. 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. IN101 - Cours 1.2 - 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

More Related