4. Groupement d objets



Documents pareils
2. Comprendre les définitions de classes

Programmer en JAVA. par Tama

Utiliser Java sans BlueJ

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

Package Java.util Classe générique

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

Initiation à la programmation en Python

Utilisation d objets : String et ArrayList

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

ACTIVITÉ DE PROGRAMMATION

Programmation Par Objets

Programmation en Java IUT GEII (MC-II1) 1

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

as Architecture des Systèmes d Information

Java Licence Professionnelle CISII,

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 Cours 7 : Classes et méthodes abstraites

Langage Java. Classe de première SI

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

Auto-évaluation Programmation en Java

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

Bases de programmation. Cours 5. Structurer les données

Java 1.5 : principales nouveautés


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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Threads. Threads. USTL routier 1

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Chapitre 10. Les interfaces Comparable et Comparator 1

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)

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

Projet de programmation (IK3) : TP n 1 Correction

Traduction des Langages : Le Compilateur Micro Java

Cours 1: Java et les objets

Apprendre Java en 154 minutes

Héritage presque multiple en Java (1/2)

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

Algorithmique et Programmation, IMA

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Premiers Pas en Programmation Objet : les Classes 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

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

Introduction à MATLAB R

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

TD/TP PAC - Programmation n 3

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

Développement Logiciel

INF2015 Développement de logiciels dans un environnement Agile. Examen intra 20 février :30 à 20:30

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

GOL502 Industries de services

Java Licence professionnelle CISII,

JavaServer Pages (JSP)

Corrigés des premiers exercices sur les classes

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

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

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

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

Java - la plateforme

Chapitre V. Les classes : Object, Vector, etc.

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Projet gestion d'objets dupliqués

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)

Programmation par les Objets en Java

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Une introduction à Java

Cours d Algorithmique et de Langage C v 3.0

Java DataBaseConnectivity

Java Licence Professionnelle CISII,

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

Organigramme / Algorigramme Dossier élève 1 SI

TP, première séquence d exercices.

I. Introduction aux fonctions : les fonctions standards

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

INITIATION AU LANGAGE JAVA

Programmation MacOSX / ios

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

Application web de gestion de comptes en banques

Introduction à JDBC. Accès aux bases de données en Java

Programmation par composants (1/3) Programmation par composants (2/3)

Introduction au langage C

TD/TP PAC - Programmation n 3

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

JAVA 8. JAVA 8 - Les fondamentaux du langage. Les fondamentaux du langage Java. Avec exercices pratiques et corrigés JAVA 8 29,90.

Introduction aux services Active Directory

Programmation Orientée Objet Java

Chapitre 2. Classes et objets

Programmation C++ (débutant)/instructions for, while et do...while

Présentation du PL/SQL

Messagerie & Groupeware. augmentez l expertise de votre capital humain

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.

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Les structures. Chapitre 3

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

RMI le langage Java XII-1 JMF

Transcription:

Conception objet en Java avec BlueJ une approche interactive 4. Groupement d objets Collections et itérateurs David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0

Principaux concepts étudiés Collections Boucles Itérateurs Tableaux Conception objet en Java avec BlueJ une approche interactive 2

Conception objet en Java avec BlueJ une approche interactive 3 La nécessité de regrouper les objets Beaucoup d'applications mettent en jeu des collections d'objets: organiseurs personnels catalogues de bibliothèque système de gestion d'étudiants Le nombre d'éléments (item, entrée, enregistrement) à stocker est variable items ajoutés items supprimés

Un agenda électronique Stocker des rendez-vous. Visualiser les informations d'un rendezvous. Nombre d'entrées illimité. Connaître de nombre d'entrées. Étudiez le projet notebook1.. Conception objet en Java avec BlueJ une approche interactive 4

Bibliothèques de classes (1) Ensemble de classes utiles. Ne pas réécrire tout à partir de zéro. Les bibliothèques Java s'appellent des paquetages (packages). Il est très fréquent de devoir regrouper des objets. Le paquetage java.util contient des classes pour cela. Conception objet en Java avec BlueJ une approche interactive 5

import java.util.arraylist; Bibliothèques /** *... */ public class Notebook { // Storage for an arbitrary number of notes. private ArrayList notes; de classes (2) /** * Perform any initialization required for the * notebook. */ public Notebook() { notes = new ArrayList();... Conception objet en Java avec BlueJ une approche interactive 6

Conception objet en Java avec BlueJ une approche interactive 7 Structures objets avec les collections

Ajouter une troisième note Conception objet en Java avec BlueJ une approche interactive 8

Propriétés d'une collection Augmente sa capacité si nécessaire. Maintient un compteur privé (accesseur size() ). Conserve les objets dans l'ordre. Les détails de réalisation sont masqués. est-ce important? Cela nous empêche-t- il de l'utiliser? Conception objet en Java avec BlueJ une approche interactive 9

Utiliser une collection public class Notebook { private ArrayList notes;... public void storenote(string note) { notes.add(note); public int numberofnotes() { return notes.size(); Ajouter une nouvelle entrée Renvoyer le nombre d entrées (délégation)... Conception objet en Java avec BlueJ une approche interactive 10

Numérotation par index Conception objet en Java avec BlueJ une approche interactive 11

Conception objet en Java avec BlueJ une approche interactive 12 Obtenir un objet Contrôle de validité public void shownote(int notenumber) des indices { if(notenumber < 0) { // This is not a valid note number. else if(notenumber < numberofnotes()) { System.out.println(notes.get(noteNumber)); else { // This is not a valid note number. Obtenir et afficher la note

Conception objet en Java avec BlueJ une approche interactive 13 La suppression peut modifier la numérotation

Conception objet en Java avec BlueJ une approche interactive 14 Résumé (1) Les collections permettent le stockage d'un nombre quelconque d'objets. Les bibliothèques (libraries) de classes contiennent en général des classes collection déjà vérifiées et testées. Les bibliothèques de classes Java s'appellent des paquetages (packages). Nous avons utilisé la classe ArrayList du paquetage java.util.

Conception objet en Java avec BlueJ une approche interactive 15 Résumé (2) Des entrées peuvent être ajoutées ou supprimées. Chaque entrée a un indice. Les valeurs des indices peuvent changer si des entrées sont supprimées (ou d'autres ajoutées). Les principales méthodes de ArrayList sont add, get, remove et size.

Itérations Il est souvent nécessaire de répéter certaines actions un nombre arbitraire de fois. Exemple: afficher toutes les informations de l'agenda. Combien y a-t-il d'entrées? La plupart des langages de programmation disposent d'instructions de boucle pour cela. Java possède trois instructions de boucle. Nous étudions sa boucle while (tant que). Conception objet en Java avec BlueJ une approche interactive 16

Conception objet en Java avec BlueJ une approche interactive 17 Boucle while (tant que) pseudo-code Mot clé while Forme générale d'une boucle while Test (booléen) while(loop condition) { loop body Instructions à répéter Exemple de pseudo-code pour afficher toutes les notes while(il y a au moins une note à afficher) { afficher la note suivante

Conception objet en Java avec BlueJ une approche interactive 18 Un exemple en Java /** * Liste toutes les notes de l'agenda. */ public void listnotes() { int index = 0; while(index < notes.size()) { System.out.println(notes.get(index)); index++; Incrément de 1

Itérer sur une collection java.util.iterator retourne un objet Iterator Iterator it = mycollection.iterator(); while(it.hasnext()) { appeler it.next() pour obtenir l'objet suivant faire quelque chose avec cet objet public void listnotes() { Iterator it = notes.iterator(); while(it.hasnext()) { System.out.println(it.next()); Conception objet en Java avec BlueJ une approche interactive 19

Le projet auction Le projet auction fournit une nouvelle illustration des collections et de l'itération. Deux points à souligner: la valeur null. le transtypage (casting ). Utilisé pour stocker le résultat de get dans une variable: String message = (String)notes.get(0); Conception objet en Java avec BlueJ une approche interactive 20

Conception objet en Java avec BlueJ une approche interactive 21 Résumé Les instructions de boucle permettent l'exécution répétée d'un bloc d'instructions. Une boucle while Java contrôle la répétition avec une expression booléenne. Les classes collection possèdent des objets Iterator spéciaux qui simplifient l'itération sur l'ensemble de la collection.

Collections de taille fixe La taille maximale d'une collection peut parfois être déterminée à l'avance. Les langages de programmation disposent en général d'un type spécial de collection de taille fixe: le tableau (array). En Java, les tableaux peuvent stocker des objets ou des valeurs de types primitifs. Les tableaux utilisent une syntaxe particulière. Conception objet en Java avec BlueJ une approche interactive 22

Le projet weblog-analyzer Un serveur Web enregistre les détails de chaque accès. Aide au travail du webmaster pages les plus lues. périodes d'activité maximale. quantité de données transférées. références obsolètes. Analyse heure par heure des accès. Conception objet en Java avec BlueJ une approche interactive 23

Conception objet en Java avec BlueJ une approche interactive 24 Créer un objet array (tableau) public class LogAnalyzer { private int[] hourcounts; private LogfileReader reader; Déclaration de variable Array public LogAnalyzer() { hourcounts = new int[24]; reader = new LogfileReader();... Création d un objet Array

Le tableau hourcounts Conception objet en Java avec BlueJ une approche interactive 25

Utiliser un tableau On emploie la notation entre crochets pour accéder à un élément de tableau: hourcounts[...] Les éléments sont utilisés comme des variables ordinaires. à gauche d'une affectation: hourcounts[hour] =...; dans une expression: adjusted = hourcounts[hour] 3; hourcounts[hour]++; Conception objet en Java avec BlueJ une approche interactive 26

Boucle for (pour) Même principe que pour la boucle while. Souvent utilisée pour itérer un nombre connu de fois. Souvent employée pour itérer sur un tableau. Conception objet en Java avec BlueJ une approche interactive 27

Conception objet en Java avec BlueJ une approche interactive 28 Boucle for pseudo-code Forme générale d'une boucle for for(initialisation; condition; action après le corps) { instructions à répéter Équivalent avec une boucle while initialisation; while(condition) { instructions à répéter action après le corps

Conception objet en Java avec BlueJ une approche interactive 29 Un exemple en Java Version boucle for for(int hour = 0; hour < hourcounts.length; hour++) { System.out.println(hour + ": " + hourcounts[hour]); Version boucle while int hour = 0; while(hour < hourcounts.length) { System.out.println(hour + ": " + hourcounts[hour]); hour++;

Résumé Utiliser les tableaux (array) lorsqu'une collection de taille fixe est nécessaire. Les tableaux emploient une syntaxe spéciale. On peut employer une boucle for au lieu d'une boucle while lorsque le nombre de répétitions est connu à l'avance. Les boucles for sont souvent utilisées pour itérer sur les tableaux. Conception objet en Java avec BlueJ une approche interactive 30

Sommaire général 1. Introduction 2. Classes 3. Interactions d objets 4. Collections et itérateurs 5. Bibliothèques de classes 6. Tests mise au point 7. Conception des classes 8. Héritage -1 9. Héritage -2 10. Classes abstraites et interfaces 11. Gestion des erreurs 12. Conception des applications Conception objet en Java avec BlueJ une approche interactive 31