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

Slides:



Advertisements
Présentations similaires
ORTHOGRAM PM 3 ou 4 Ecrire: « a » ou « à » Référentiel page 6
Advertisements

LES NOMBRES PREMIERS ET COMPOSÉS
La programmation orientée objet avec Java L3-MIAGE Plan
Licence pro MPCQ : Cours
Distance inter-locuteur
Le mécanisme des exceptions
SI3 MAM3 Hydro Nathan Cohen Igor Litovsky Christophe Papazian
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Introduction à la Programmation Orientée Objet Langage Java
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
Les numéros
Cours MIAGE « Architectures Orientées Services » Henry Boccon-Gibod 1 Architectures Orientées Services Composants de Service Exemple pratique de développement.
1. 2 Informations nécessaires à la création dun intervenant 1.Sa désignation –Son identité, ses coordonnées, son statut 2.Sa situation administrative.
(Classes prédéfinies – API Java)
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
Algorithme et structure de données
LICENCE MIAGE Introduction Programmation Orientée Objet JAVA philippe
TD 1 IJA Introduction Objet, méthode, attribut Classe, instance
Chap. 1 Structures séquentielles : listes linéaires
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Principes de programmation (suite)
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
Langage Oriente Objet Cours 4.
1 Guide de lenseignant-concepteur Vincent Riff 27 mai 2003.
PM18 MONTAGE DU BLINDAGE AUTOUR DE LA QRL F. DELSAUX - 25 JAN 2005
Titre : Implémentation des éléments finis sous Matlab
Introduction au paradigme objet Concepts importants surcharge (overload) redéfinition (override) Définition d’une classe Définition des attributs.
77 Utilisation des classes (suite). 7-2 Objectifs A la fin de ce cours, vous serez capables de : Définir des méthodes surchargées dans une classe Fournir.
Projet poker 1/56. Introduction Présentation de léquipe Cadre du projet Enjeux Choix du sujet 2.
F Copyright © Oracle Corporation, Tous droits réservés. Créer des programmes avec Procedure Builder.
LES NOMBRES PREMIERS ET COMPOSÉS
Langage Oriente Objet Cours 2.
Structures de données IFT-2000
66 Utilisation des classes et des objets. 6-2 Objectifs A la fin de ce cours, vous serez capables de : Créer de nouvelles classes à laide de Eclipse Utiliser.
Introduction à la programmation objet Langage Java
Introduction à la Programmation Orientée Objet Retour sur les principaux concepts SI3 MAM3 Hydro Nathan Cohen
Représentation des systèmes dynamiques dans l’espace d’état
DUMP GAUCHE INTERFERENCES AVEC BOITIERS IFS D.G. – Le – 1/56.
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
Chapitre 9 Les sous-programmes.
Titre : Implémentation des éléments finis en Matlab
COURS DE PROGRAMMATION ORIENTEE OBJET :
Leçon 1 : notion dobjet IUP Génie Informatique Besançon Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
99 Réutilisation du code grâce à l'héritage. 9-2 Objectifs À la fin de ce cours, vous serez capables de : Définir l'héritage Utiliser l'héritage pour.
Équipe 2626 Octobre 2011 Jean Lavoie ing. M.Sc.A.
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
1/65 微距摄影 美丽的微距摄影 Encore une belle leçon de Macrophotographies venant du Soleil Levant Louis.
4 Introduction des objets. Les chaînes et tableaux
LES PILES ET FILES.
Exercice de vérification 1 p
La notion de type revisitée en POO
Les Chiffres Prêts?
11/04/ L'héritage Cours 7 Cours 7.
Programmation objet La base.
Les parties du corps By Haru Mehra Le Frehindi 1Haru Mehra, DELF, DALF,CFP.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
Les classes présenté par: RAHMOUNE RIME / ZEKRI SELMA.
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
Héritage Conception par Objet et programmation Java
BlueJ_III 1 Java, les objets : tout de suite ! Interaction entre objets Notes de cours associées au chapitre 3 tutorial BlueJ
Transcription de la présentation:

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

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

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

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 ?

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

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

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

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;

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

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

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: "")

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

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)

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

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 !

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

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

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

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)

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

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 !

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 !

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)

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

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

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;

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

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

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)

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

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 !

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

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

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

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

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

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)

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

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 +

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)

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

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

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;

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

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

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

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)

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