Plan. Chaînes de caractères un exemple d objet. Codage Unicode. Définition. Programmation objet. Programmation objet

Documents pareils
Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Utilisation d objets : String et ArrayList

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Java Licence Professionnelle CISII,

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

as Architecture des Systèmes d Information

TP1 : Initiation à Java et Eclipse

Chapitre 10. Les interfaces Comparable et Comparator 1

Une introduction à Java

Généralités sur le Langage Java et éléments syntaxiques.

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Langage Java. Classe de première SI

Tp 1 correction. Structures de données (IF2)

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Programmation par les Objets en Java

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

RAPPELS SUR LES METHODES HERITEES DE LA CLASSE RACINE Object ET LEUR SPECIALISATION (i.e. REDEFINITION)

INITIATION AU LANGAGE JAVA

Chapitre VI- La validation de la composition.

OpenPaaS Le réseau social d'entreprise

Programmation avec des objets : Cours 7. Menu du jour

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Rappel sur les bases de données

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Création et Gestion des tables

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

PROJET ALGORITHMIQUE ET PROGRAMMATION II

INF 321 : mémento de la syntaxe de Java

Exercices sur les interfaces

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

Java Licence professionnelle CISII,

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

Programmation en Java IUT GEII (MC-II1) 1

Premiers Pas en Programmation Objet : les Classes et les Objets

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

Plan du cours. Historique du langage Nouveautés de Java 7

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TD/TP PAC - Programmation n 3

Java Licence Professionnelle CISII,

OCL - Object Constraint Language

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Initiation à JAVA et à la programmation objet.

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Chapitre 2. Classes et objets

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Programmer en JAVA. par Tama

Utiliser Améliorer Prêcher. Introduction à LDAP

Programmation Orientée Objets Le Langage JAVA

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Java c est quoi? Java pourquoi?

Présentation du langage et premières fonctions

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Chapitre I Notions de base et outils de travail

RMI le langage Java XII-1 JMF

Cours 1: Java et les objets

MISE A NIVEAU INFORMATIQUE LANGAGE C - EXEMPLES DE PROGRAMMES. Université Paris Dauphine IUP Génie Mathématique et Informatique 2 ème année

Utiliser Java sans BlueJ

Bases de données relationnelles

Plan du cours Cours théoriques. 29 septembre 2014

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

GOL502 Industries de services

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Les structures. Chapitre 3

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Rappels d architecture

Recherche dans un tableau

Notions fondamentales du langage C# Version 1.0

Gestion d identités PSL Exploitation IdP Authentic

Génie Logiciel avec Ada. 4 février 2013

Ensimag 1ère année Algorithmique 1 Examen 2ième session 24 juin Algorithmique 1

TD3: tableaux avancées, première classe et chaînes

Cours Bases de données 2ème année IUT

2 Comment fonctionne un ordinateur, dans les grandes lignes

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Les chaînes de caractères

Cours d initiation à la programmation en C++ Johann Cuenin

Java DataBaseConnectivity

Objets et Programmation. origine des langages orientés-objet

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

TD/TP PAC - Programmation n 3

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Projet de programmation (IK3) : TP n 1 Correction

Traduction des Langages : Le Compilateur Micro Java

Apprendre Java en 154 minutes

COMPARAISONDESLANGAGESC, C++, JAVA ET

Tutoriel BlueJ. Michael Kölling Mærsk Institute University of Southern Denmark. Version 1.4 fr-2 par le groupe Sigma 1 pour BlueJ Version 1.2.

Transcription:

Plan Chaînes de caractères un exemple d objet Définition Programmation objet Classe String Classe StringBuilder Université de Nice - Sophia Antipolis Richard Grin Version1.1 10/11/11 Richard Grin Chaînes de caractères page 2 Définition Une chaîne de caractères est une suite de caractères lisibles par un homme Très utilisé dans les programmes informatiques, par exemple pour afficher des informations, désigner un fichier, recevoir un nom d utilisateur, afficher les options d un menu Codage Unicode Les caractères utilisés par Java sont codés par le codage Unicode Unicode peut représenter tous les caractères affichables de toutes les langues (ou presque ), les caractères de ponctuation et même les caractères utilisés par les mathématiques ou d autres domaines La version actuelle du codage Unicode est la version 5 qui code plus d un million de caractères Richard Grin Chaînes de caractères page 3 Richard Grin Chaînes de caractères page 4 Programmation objet Programmation objet Jusqu à maintenant dans cette introduction à la programmation nous n avons pas fait de programmation objet La programmation objet manipule des objets Elle modélise la réalité concernée par le programme à l aide d objets Richard Grin Chaînes de caractères page 5 Richard Grin Chaînes de caractères page 6 1

Qu est-ce qu un objet? Entité identifiable, concrète ou abstraite Un objet réagit à des messages qu on lui envoie ; la façon dont il réagit constitue le comportement de l objet Il ne réagit pas toujours de la même façon à un même message ; sa réaction dépend de l état dans lequel il est Comportement État (caché) (interface publique) Un objet Un objet Arrête-toi vitesse direction... va à x km/h Une voiture Démarre R. Grin Introduction à Java 7 R. Grin Introduction à Java 8 Exemples d objet Une voiture Un employé Un client Une facture Une chaîne de caractères Interactions entre objets Les objets interagissent en s envoyant des messages Objet qui reçoit le message Message envoyé objet1.decristoi(); employe.valeurdetonsalaire(2000); Paramètre du message Richard Grin Chaînes de caractères page 9 R. Grin Introduction à Java 10 nom:pierre âge:28 ans... Pierre Messages entre objets Conduit à la ville v Pierre envoie un message à sa voiture : va à 70 km/h arrête-toi va à x km/h démarre vitesse:60 direction:5... La voiture de Pierre mavoiture.vaavitesse(70); R. Grin Introduction à Java 11 Notion de classe Le code lié aux objets d un même type est écrit dans une classe Par exemple, les objets Pierre, Paul et Jacques sont représentés par la classe Personne La classe contient le code qui décrit l état et le comportement des objets qui sont de ce type Richard Grin Chaînes de caractères page 12 2

Les classes en Java L état interne est donné par les valeurs des variables d instance Le comportement est donné par les méthodes Par exemple, la classe Personne contient le code qui décrit les variables d instance et les méthodes applicables aux personnes Méthodes et messages Méthodes de la classe d un objet messages qu on peut lui envoyer Quand un objet reçoit un message, il exécute la méthode correspondante R. Grin Introduction à Java 13 R. Grin Introduction à Java 14 Paradigme objet La programmation objet est un paradigme, une manière de «modéliser le monde» : des objets ayant un état interne et un comportement collaborent en s échangeant des messages pour fournir les fonctionnalités qu on demande à l application Classe String R. Grin Introduction à Java 15 Richard Grin Chaînes de caractères page 16 Classe String Le développeur peut créer ses propres types d objet Il peut aussi manipuler des types d objets créés par d autres Pour cette partie du cours nous allons étudier les chaînes de caractères, objets fournis en standard par le JDK de Java sous la forme de la classe java.lang.string Extrait de String.java /** The value is used for character storage.*/ private final char[] value; /** The count is the number of characters in the String. */ private final int count; dans src.zip Richard Grin Chaînes de caractères page 17 Richard Grin Chaînes de caractères page 18 3

Types en Java Les classes peuvent servir de type (pour déclarer les variables ou dans les signatures des méthodes), comme les types primitifs Les types que l on a déjà vu : Types primitifs (int, double, ) Classes (String par exemple) Tableaux (int[] ou String[] par exemple) D autres sortes de types seront étudiées dans le cours de L3 Création d un objet String En Java, la syntaxe normale pour la création d un objet utilise le mot clé new, comme pour un tableau : Train train = new Train(125); La classe String a une syntaxe spéciale String = "Bonjour"; crée un objet String et l affecte à la variable Comme pour les tableaux, l objet String est entreposé dans le tas (pas dans la pile) Richard Grin Chaînes de caractères page 19 Richard Grin Chaînes de caractères page 20 = "Bonjour"; String dans le tas Vocabulaire Un objet de la classe String (ou de toute autre classe) s appelle une instance de la classe Bonjour Pile Tas Richard Grin Chaînes de caractères 21 Richard Grin Chaînes de caractères page 22 Un objet String n est pas modifiable La classe String est une classe particulière car il est impossible de modifier l état des instances de la classe Il existe dans le JDK la classe StringBuilder pour représenter les chaînes de caractères modifiables ; elle sera étudiée à la fin de cette section Nouvelle affectation avec les String String = "Bonjour"; = "Hello"; Cet objet String n est pas modifié La dernière instruction correspond aux étapes suivantes : 1) Une nouvelle valeur (Hello) est créée 2) La variable référence la nouvelle chaîne Hello (et plus l ancienne chaîne Bonjour) 3) La place occupée par la chaîne Bonjour pourra être récupérée à un moment ultérieur par le ramasse-miette Richard Grin Chaînes de caractères page 23 Richard Grin Chaînes de caractères 24 4

= "Bonjour"; = "Hello"; String dans le tas = "Bonjour"; = "Hello"; String dans le tas Hello Plus tard le ramasse-miette viendra libérer la place occupée par «Bonjour» Bonjour Bonjour Pile Tas Richard Grin Chaînes de caractères 25 Pile Tas Richard Grin Chaînes de caractères 26 Concaténation de chaînes String s = "Bonjour" + " les amis"; Si un des 2 opérandes de l opérateur + est une String, l autre est traduit automatiquement en String : int x = 5; s = "Valeur de x = " + x; Concaténation de chaînes S il y a plusieurs + dans une expression, les calculs se font de gauche à droite int x = 5; s = "Valeur de x + 1 = " + x + 1; s contient «Valeur de x + 1 = 51» s = x + 1 + "est la valeur de x + 1"; s contient «6 est la valeur de x + 1» On peut utiliser des parenthèses pour modifier l ordre d évaluation : s = "Valeur de x + 1 = " + (x + 1); Richard Grin Chaînes de caractères 27 Richard Grin Chaînes de caractères 28 Égalité de Strings La méthode equals teste si 2 instances de String contiennent la même valeur : String s1, s2; s1 = "Bonjour "; s2 = "les amis"; if ((s1 + s2).equals("bonjour les amis")) System.out.println("Egales"); «==» teste si 2 objets sont les mêmes ; il ne doit pas être utilisé pour comparer 2 chaînes Richard Grin Chaînes de caractères 29 Méthodes d instance La méthode equals (comme les autres méthodes de la classe String) n est pas une méthode static (voir javadoc) Elle correspond à un message envoyé à un objet (pas à une classe) Les méthodes static sont appelées des méthodes de classe ; les autres sont appelées des méthodes d instance La plupart des méthodes sont des méthodes d instance Richard Grin Chaînes de caractères page 30 5

Comparaison de Strings s.compareto(t) renvoie le «signe de s-t» : 0 en cas d égalité de s et de t, un nombre entier positif si s suit t dans l ordre lexicographique un nombre entier négatif sinon Méthodes de String Il est impossible de connaître toutes les méthodes des classes fournies par le JDK Il faut se renseigner en utilisant la javadoc de la classe Richard Grin Chaînes de caractères 31 Richard Grin Chaînes de caractères page 32 Exemples de méthodes de String Récupérer le protocole, la machine, le répertoire et le nom du fichier d une adresse Web http://truc.unice.fr/rep1/rep2/fichier.html int n = adresse.indexof(":"); // 4 String protocole = adresse.substring(0, n); // http String reste = adresse.substring(n + 3); n = reste.indexof("/"); // 13 rep1/rep2/fichier.html String machine = reste.substring(0, n); String chemin = reste.substring(n + 1); int m = chemin.lastindexof("/"); // 9 String repertoire = chemin.substring(0, m); String fichier = chemin.substring(m + 1); Richard Grin Chaînes de caractères 33 A retenir Aucune des méthodes de la classe String ne modifie la chaîne qui reçoit le message Par exemple, substring extrait une souschaîne qui est retournée par la méthode mais la chaîne qui reçoit le message n est pas modifiée Richard Grin Chaînes de caractères page 34 Chaînes de caractères 2 classes du paquetage java.lang : Classe StringBuilder String pour les chaînes constantes StringBuilder pour les chaînes variables On utilise le plus souvent String, sauf si la chaîne doit être fréquemment modifiée Richard Grin Chaînes de caractères page 35 Richard Grin Chaînes de caractères 36 6

Chaînes modifiables StringBuilder possèdent des méthodes qui modifient le receveur du message et évitent la création de nouvelles instances ; par exemple : append insert replace delete Attention, StringBuilder ne redéfinit pas equals Pour comparer le contenu de 2 StringBuilder le plus simple est de les transformer en String pour utiliser equals Richard Grin Chaînes de caractères 37 Exemple StringBuilder sb = new StringBuilder("Personne"); sb.append(s); sb.insert(0, "8 "); Richard Grin Chaînes de caractères page 38 String et StringBuilder Utiliser plutôt la classe String qui possède de nombreuses méthodes Si la chaîne de caractères doit être souvent modifiée, passer à StringBuilder avec le constructeur StringBuilder(String s) Repasser de StringBuilder à String avec tostring() Concaténation - performances La concaténation de Strings est une opération coûteuse (elle implique en particulier la création d un StringBuilder) Passer explicitement par un StringBuilder si la concaténation doit se renouveler Richard Grin Chaînes de caractères 39 Richard Grin Chaînes de caractères 40 Exemple String[] t;... // Remplit t // Création de l instance de StringBuilder StringBuilder sb = new StringBuilder(t[0]); // Concaténation des éléments de t dans sb // (évite des créations d objets) for (int i = 1; i < t.length; i++) { sb.append(t[i]); } // Récupère le résultat dans une String String = c.tostring(); Richard Grin Chaînes de caractères 41 7