1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Maintenant !

Slides:



Advertisements
Présentations similaires
Les jours de la semaine Days of the week
Advertisements

Rappels C.
Aujourd’hui et demain Les jours de la semaine Partenaires A & B
Les couleurs.
Le Calendrier The Calendar.
Lundi mardi mercredi jeudi vendredi samedi dimanche clique dans lordre des jours.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Les heures douverture Présentation. Les questions Est-ce que le/la/l (nom du magasin) est ouvert/ouverte le (jour de la semaine)? Est-ce que le/la/l (nom.
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
Les sept jours de la semaine par Etienne
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Apprenons Français!.
Java : Programmation Impérative
Madame Massin et les oeufs. Lundi matin, Madame Massin est dans le jardin.
JavaBeans Réalise par: EL KHADRAOUY TARIK AOUTIL SAFOWAN.
TRAITEMENT DE STRUCTURES
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.
1 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde COURS 3 : Programmation impérative Résumé du cours précédent.
1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Résumé du cours précédent.
Le temps et les saisons.
Structures de données IFT Abder Alikacem La classe string Département dinformatique et de génie logiciel Édition Septembre 2009 Département dinformatique.
Introduction à la programmation objet Langage Java
Semaine #1 INF130 par Frédérick Henri.
COURS 2 : Programmation impérative
Notre calendrier français MARS 2014
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
Qu’est-ce que tu fais samedi?
Qu’est-ce que tu fais samedi?
Animateur : Med HAIJOUBI
Cours 7 Divers et exceptions. Chapitre V Enumeration, tableaux, conversion de types, noms.
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
Introduction à la programmation (420-PK2-SL) cours 6 Gestion des applications Technologie de l’information (LEA.BW)
Les Jours de la Semaine.
JavaScript.
Un survol du language C.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
Tutorat en bio-informatique
Réaliser par: Sadok Amel Cheboui hassiba
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.
C# de plus près.  Ce sont globalement les mêmes que Java : ◦ Int(int16, int32), float, double, bool,…  Les classe « communes » sont également les mêmes.
LE CALENDRIER 2005 DES STRINGS
CALENDRIER
C’est à toi! 2 Unité 1 – Les fêtes Correction - Revue Les chiffres – les jours de la semaine et les mois.
Bonjour Quel jour est-ce aujourd’hui? Aujourd’hui c’est
CALENDRIER 2003 Le parfum est la musique du corps.
SEPTEMBRE - ²septembre 2014
Quel saison est-ce?.
Du 8/09 au 12/09 Du 15/09 au 19/09 Du 22/09 au 26/09 Du 29/09 au 3/10
Les Jours, les mois, et les saisons Mlle Doster, Mlle Winokur, Mlle Rantz.
Lundi, ma première achat serait d’une voiture.Une Mercedez Classique 1992 à $
Vocabulaire Moments du jour.
SEPTEMBRE lundi mardi mercredi jeudi vendredi samedi dimanche
LE CALENDRIER DU STRING

LUNDIMARDI MERCREDI JEUDI VENDREDI SAMEDI DIMANCHE CLEMENTJULIE.
Les jours de la semaine.
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Objets et Actions Élémentaires.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
JOURNEE DES DROITS DE L ’ ENFANT
Matériel : Prénom: LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
LES CLASSES ET LES OBJETS
À la Carte Nous sommes mardi le 12 janvier Mme Panter’s Français Café 1. Copiez ce tableau DANS nos NOTES: 2. Which day is today? Bellwork: Objectives:
Les jours de la semaine. dimanche mardi mercredi jeudi vendredi samedi lundi.
Daniel et Ethan les gourmands Par Daniel et Ethan.
Activité de lecture 2 ème enfantine Activité de lecture 2 ème enfantine école enfantine Corin année la balade de léo l’escargot… Pour te promener.
Transcription de la présentation:

1 Objectifs de ce cours (I21) Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Maintenant !

2 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les énumérations en Java Exemples dénumérations : Les jours de la semaine public enum Jour {LUNDI, MARDI, MERCREDI, JEUDI, VENDREDI, SAMEDI, DIMANCHE } Les saisons public enum Saison {PRINTEMPS, ETE, AUTOMNE, HIVER } Les couleurs des cartes public enum COULEUR {PIQUE, COEUR, CARREAU, TREFLE } à partir de là, on peut définir des variables qui relèvent dune énumération : Jour j = LUNDI; Attention: il ny a pas de guillemets COULEUR couleur = PIQUE;car ce ne sont pas des String mais des noms (littéraux) Les énumérations permettent de définir des types qui contiennent un ensemble figé de constantes simplement désignées par des noms littéraux Par convention, on met toujours les noms des constantes dénumération en MAJUSCULES. On peut également choisir de mettre les noms des types dénumération en MAJUSCULES.

3 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les énumérations en Java on peut utiliser ces variables dans des expressions Java : - pour de nouvelles affectations : j = Jour. MERCREDI) // la variable j contient maintenant le littéral MERCREDI - pour des comparaisons simples : if ( j = = Jour. LUNDI) //...faire quelque chose de particulier à LUNDI... - pour des comparaisons multiples : switch ( couleur ) { case PIQUE : //...faire quelque chose de particulier à PIQUE... puis break; case COEUR : //...faire quelque chose de particulier à COEUR... puis break; case CARREAU : //...faire quelque chose de particulier à CARREAU... puis break; case TREFLE : //...faire quelque chose de particulier à TREFLE... puis break; } ATTENTION: en Java, les valeurs de comparaison des ordres « case » ne doivent pas utiliser la notation pointée (qui réfère au type dénumération) mais doivent être fournies directement comme dans linstruction « switch » ci-dessus. AU CONTRAIRE: dans tous les autres cas, on doit utiliser la notation pointée comme dans linstruction « if » ci-dessus.

4 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les énumérations en Java Exemple 1, définition de lénumération dans UN FICHIER À PART : fichier Carte.java public class Carte { // Variables d'instance private COULEUR couleur; // couleur de la carte private int rang;// rang de la carte (de 0 à 13) // (Joker rang 0, As rang 1, 2 rang 2,..., Roi rang 13) private int force; // force de la carte (par défaut, la force est égale au rang) /** Construit une carte en donnant sa couleur et son rang. La force de la * carte sera égale à son rang. Le rang doit être compris entre 0 et 13. public Carte (COULEUR couleur, int rang) { this.couleur = couleur; this.rang = (rang >= 1 && rang <= 13 ? rang : 0); this.force = this.rang; } fichier COULEUR.java /** Définition des couleurs des cartes (à l'aide de constantes littérales énumérées). */ public enum COULEUR { PIQUE, COEUR, CARREAU, TREFLE }

5 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les énumérations en Java Exemple 2, définition de lénumération dans UN FICHIER DE CLASSE : fichier Carte.java /** Définition des couleurs des cartes (à l'aide de constantes littérales énumérées). */ public enum COULEUR { PIQUE, COEUR, CARREAU, TREFLE } public class Carte { // Variables d'instance private COULEUR couleur;// couleur de la carte private int rang;// rang de la carte (de 0 à 13) // (Joker rang 0, As rang 1, 2 rang 2,..., Roi rang 13) private int force; // force de la carte // (par défaut, la force est égale au rang) /** Construit une carte en donnant sa couleur et son rang. La force de la * carte sera égale à son rang. Le rang doit être compris entre 0 et 13. */ public Carte (COULEUR couleur, int rang) { this.couleur = couleur; this.rang = (rang >= 1 && rang <= 13 ? rang : 0); this.force = this.rang; } NE PAS DECLARER PUBLIC La déclaration dune énumération dans un fichier de classe existant entraîne quelques différences (liées à la notion de package) qui ne seront vues que plus tard.

6 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les classes de types primitifs ( wrappers) Mais, nétant pas des objets : ces données ne disposent daucune méthode ! Les types primitifs des langages O-O (byte, double, float, int, long, short, char, boolean) fournissent des données immédiates (entières, réelles, de caractère ou booléennes) et ne peuvent être fournis en arguments là où un objet est attendu ! Pour palier à cela, tous les types primitifs ont été encapsulés dans des classes. Types primitifs byteshortintlongfloatdoublecharboolean Classes correspondantes (wrapped, litt. emballés) ByteShortIntegerLongFloatDoubleCharacterBoolean Voir

7 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les classes de types primitifs ( wrappers) Chaque classe contient une valeur primitive du type correspondant mais les objets issus des classes wrappées sont immutables. Leurs valeurs sont figées à la construction. Chaque classe fournit plusieurs méthodes : - pour convertir sa valeur (entière, réelle ou booléenne) en String - pour convertir un String en une valeur (entière, réelle ou booléenne) - ainsi que des constantes et dautres méthodes utiles Voir Exemple :// Ici, lobjet instancié ne changera jamais de valeur, il vaudra toujours 12 ! Integer wi = new Integer(12); Exemples : new Integer(12) Integerwi.byteValue() byteInteger.toString(12) String new Integer ("12") Integerwi.intValue() intInteger.toString(12,16) String Integer.valueOf(12) Integerwi.doubleValue() doubleInteger.toHexString(12) String Integer.valueOf("12") Integerwi.floatValue() floatInteger.parseInt("12") int Integer.valueOf( "FF",16) IntegerInteger.parseInt("12",16) int Integer.MAX_VALUE int ( )

8 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les classes de types primitifs ( wrappers) Autoboxing et unboxing Autant que possible, on préfèrera utiliser des types primitifs dans nos codes. Il savèrera donc nécessaire deffectuer des conversions vers des objets wrappés quand cela sera indispensable. Heureusement, le plus souvent, cest le compilateur qui se chargera de tout cela ! Il effectuera tantôt un autoboxing (mise en boîte: int Integer), tantôt un unboxing (Integer int) là où ce sera nécessaire ! Voir Exemple :// Ici, nbCartes est un type primitif à conjuguer avec un objet String System.out.println ("nombre de cartes = " + nbCartes); // Ici, wx et wy sont des types objets initialisés avec des types primitifs Integer wx, wy; wx = 12; wy = 15; // Ici, wx et wy sont des types objets à additionner auparavant comme des int System.out.println ( wx+wy ); Voir

9 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Les classes de types primitifs ( wrappers) Application aux classes ensemblistes Si lon désire former un ensemble dentiers à laide dune classe ArrayList, il nest dautre solution que de spécialiser à laide dune classe wrappées, soit ArrayList. Comme précédemment, cest le compilateur qui se chargera de toutes les conversions ! Exemple :// On commence par instancier une liste dentiers ArrayList listeEntiers = new ArrayList (); // Ici, on insère des entiers directement à laide de types primitifs int ! listeEntiers.add(12);... // Ici, on veut utiliser des types objets comme des int ! if ( listeEntiers.get(0) > listeEntiers.get(1) )... if ( listeEntiers.get(0) + 1 > listeEntiers.get(1) )... // Ici, on veut directement itérer sur la base de types primitifs int ! for ( int i : listeEntiers ) { if ( i != 0 )... } Évite : listeEntiers.add(Integer.valueOf(12)) Évite :listeEntiers.get(0).intValue() listeEntiers.get(1).intValue() Évite :listeEntiers.get(0).intValue() listeEntiers.get(1).intValue() Évite :for ( Integer wi : listeEntiers ) { if ( wi. intValue() != 0 )... } Évite :for ( Integer wi : listeEntiers ) { if ( wi. intValue() != 0 )... }

10 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Première notion dinterface Java Les INTERFACES sont des sortes de CONTRATS que des CLASSES sengagent à respecter Par convention, on commence toujours les noms des interfaces par une MAJUSCULE. Une classe qui sengage à respecter une interface DOIT DONNER une IMPLEMENTATION de TOUTES les méthodes définies dans linterface. Exemple :// INTERFACE servant à définir un CONTRAT de nommage : public interface Nommable { public String getName ( ); public void setName (String name); } Une interface ne fait que définir des signatures de méthodes. La classe Personne respecte linterface Nommable

11 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Première notion dinterface Java Dès lors, la classe Personne possède la qualité Nommable et il deviendra possible de ne sintéresser quà cette qualité Si lon dispose de plusieurs classes implémentant une même interface, il peut arriver quune autre classe procède à des traitements communs sur des objets relevant de cette qualité dinterface Exemple :// INTERFACE utilisée pour restreindre la vision dune classe : Personne p = new Personne ("Paul"); p.setNom ("Pierre"); Nommable n = new Personne ("Martin"); n.setNom ("James"); Un objet peut nêtre vue quau travers de sa qualité dinterface. Exemple : // CLASSE utilisant la qualité dinterface Nommable dans lune de ses méthodes : public class CCC { public void sanctifier ( Nommable nble ) { nble.setName ( "Saint " + nble.getName() ); System.out.println ( "Sanctification : " + nble.getName() ); } Csq Un objet peut être passé en paramètre par le biais de sa qualité dinterface quelque soit sa « classe vraie ».

12 Cours JAVA (I21) -Licence 1 Semestre 2 / Y.Laborde Acta est fabula