[PDF] TP n 4 - Correction Définir la classe Document





Previous PDF Next PDF



Collections Collections Collections java.util.ArrayList Collections Collections Collections java.util.ArrayList

constructeur. ○ Il y a 2 constructeurs : ✓ArrayList(). ✓ArrayList(int initialCapacity). Peter Sander. ESSI-Université de Nice Sophia. Antipolis. 6. ArrayList.



Correction TD4

//constructeur public Vehicule( String Matriculeint annee



Solution Solution

31 окт. 2012 г. Le constructeur de Polygone prend donc un objet de type java.util.ArrayList<Point> en paramètre. Un diagramme de conception intermédiaire ...



1 PARTIE : COURS (sans document) 1. QCM (35 points)

Quand une classe définit un constructeur avec des paramètres alors le constructeur par défaut (sans Une différence entre un tableau java [] et un ArrayList ...



Introduction au Java • Généralités • Syntaxe de base Concepts et Introduction au Java • Généralités • Syntaxe de base Concepts et

• constructeur permettant d'initialiser les attributs: FicheEmprunt(client: Client) ArrayList all = new ArrayList(); all.add( new Audiobook("Le petit Prince ...



Exercices de Programmation Orientée Objet en Java

On peut ajouter dans A le constructeur suivant : A(){ this.i=1;} . Dans ce cas protected java.util.ArrayList<Zone> voisines; public Zone(String n int s){.



1. QCM (35 points)

En JAVA une classe peut contenir plusieurs constructeurs. Q 12. 1 OUI. X. 2 NON. En JAVA



1ère PARTIE : COURS (sans document) 1. QCM (35 points)

NFA 031 - Programmation JAVA. Formation CNAM page 7. Entre autre une différence entre un tableau java [] et un ArrayList est : Q 28. 1 il n'y a pas de limite 



TD – Modélisation dune application

import java.util.ArrayList; public class Test {. 1alors qu'un tableau Donnez les attributs et le constructeur de la classe Agence dans les deux cas.



Séquence 12 - Surcharge de méthodes et de constructeurs

mport java.util.ArrayList; public class Panier{ private ArrayList<Produit> implicitement par Java dans chaque classe qui ne comporte pas de constructeur.



Collections Collections Collections java.util.ArrayList

Création d'un ArrayList. ? il est possible d'indiquer la taille initiale dans le constructeur. ? Il y a 2 constructeurs : ?ArrayList().



Collections dobjets (de taille variable)

ArrayList<String> notes;. 10-14 import java.util.ArrayList; class Notebook {. ArrayList<String> notes;. // la collection. Notebook(). // le constructeur.



Chapitre 12 - Utilisation dobjets : String et ArrayList

La première nous l'utilisons depuis longtemps déjà



TP n 4 - Correction

Définir la classe Document avec son constructeur public et la propriéte titre privée d'utiliser les structures de collections Java (ArrayList



JAVA : Relations entre classes Une application réalisée selon l

Traduction en java : public Compte(int num Personne propr){ //constructeur ... Soit sous la forme d'une collection (ArrayList)



1ère PARTIE : COURS (sans document) 1. QCM (35 points)

Dans une classe JAVA le constructeur d'une classe permet de : ArrayList<Individu> tab = new ArrayList<Individu>();.



Exercices de Programmation Orientée Objet en Java

Écrivez une classe PoupeeRusse contenant les méthodes suivantes : retour au sommaire. Page 8. - un constructeur. - void ouvrir() : ouvre la poupée si elle n'est 



Correction TD4

import java.util.ArrayList; public class Test { public static void main(String[] args) {. ArrayList A=new ArrayList();. //Ajout des voitures et des avions 



esial TP Noté 2008-2009 - Durée : 2h

la classe java.util.ArrayList) de type people.Person ;. – définir les méthodes de l'interface people.PeopleDatabase ;. – fournir un constructeur sans 



ArrayList

On veut enregistrer dans un objet de la classe ArrayList les notes obtenues import java.util. ... public static Double moyenne(ArrayList<Double> notes){.



[PDF] Collections Collections Collections javautilArrayList

Création d'un ArrayList ? il est possible d'indiquer la taille initiale dans le constructeur ? Il y a 2 constructeurs : ?ArrayList()



[PDF] Chapitre 12 - Utilisation dobjets : String et ArrayList - Cnam

En java les chaînes de caractères sont des objets Nous allons apprendre dans ce chapitre à mieux les utiliser La seconde classe s'appelle ArrayList Les 



[PDF] Collections dobjets (de taille variable) - LACL

Nous savons rédiger le texte d'une classe d'objets avec dans l'ordre : ses champs ses constructeurs ses méthodes ? Nous pouvons exprimer qu'une méthode a 



Comment initialiser un ArrayList en Java ? - JDN

12 jan 2019 · Il faut dans un premier temps initialiser la liste puis y ajouter les éléments un par un Voici comment



[PDF] JAVA 06 : COMPLÉMENTS – ARRAYLIST DOBJETS

ArrayList(int initialCapacity) Constructs an empty list with the specified initial capacity Method Summary boolean add(E e) Appends the specified element to 



[PDF] Collections : listes - Pratique de la programmation OO

Par exemple pour les listes l'interface est List la classe abstraite AbstractList et parmi les mises en œuvre concrètes figurent ArrayList et LinkedList



ArrayList - Conteneurs

Le constructeur suivant permet de construire un ArrayList à partir d'une collection d'objets qui sont de la classe E ou d'une sous-classe de E :



[PDF] L3 Programmation orientée objet Cours 9 - IGM

Ajouté en 2004 `a Java 5 ArrayList list = new ArrayList(); list add("hello"); dans les méthodes d'instances (et constructeur)



[PDF] Programmation Orientée Objet - Chapitre 5: Les collections - Esentn

En Java il existe 3 sortes de structures de données: Nous verrons: ArrayList LinkedList HashSet ArrayList: construction Introduction



[PDF] Quelques classes remarquables de JAVA - Moodle

La classe ArrayList est une implémentation de l'interface List Elle permet de stocker trier modifier des objets dans un ensemble de longueur variable Non

:
Universite Paris Diderot Programmation Orientee Objet

Licence Informatique Annee 2009{2010

TP n

4 - Correction

Revisions, suite et n. Introduction a l'heritage

On modelise une application devant servir a l'inventaire d'une bibliotheque. Elle devra traiter des documents de nature diverse : des livres, des dictionnaires, et autres types de documents qu'on ne conna^t pas encore precisement mais qu'il faudra certainement ajouter un jour (bandes dessinees, dictionnaires bilingues,...). On denira une classeBibliothequereduite a la seule methodemainpour tester les dierentes classes de ce TP. Exercice 1Tous les documents possedent untitre. Quand un document est cree, son titre est donne a la creation et par la suite, il ne change plus.

1. Denir la classeDocumentavec son constructeur public, et la proprietetitreprivee et

son accesseur.

2. On veut attribuer unnumero d'enregistrementunique des que l'on cree un objetDocument.

On veut que le premier document cree ait le numero 0, et que ce numero s'incremente de 1 a chaque creation de document. Quelles proprietes faut-il ajouter a la classeDocument? Les- quelles doivent-^etrestatic? Les ajouter sans leurs accesseurs, et modier le constructeur. Puis ajouter une methodegetNumerorenvoyant le numero d'enregistrement du document.

3. Ajouter un second constructeur public permettant de denir aussi, en plus du titre, le

numero d'enregistrement (suppose positif ou nul) lors de la creation d'un document. Quelles restrictions peut-on prendre an d'eviter que deux documents crees aient le m^eme numero? Dans les cas de restriction, on prendra le numero suivant prevu, a la place du numero indique par l'utilisateur.

4. Redenir la methodetoStringrenvoyant la cha^ne de caracteres constituee du numero

d'enregistrement et du titre du document. Correction :Il faut prendre garde a ce que, si on ajoute un document en indiquant son numero, ce numero soit plus grand que le numero suivant prevu. Il faut de plus mettre a jour le numero suivant. public class Document { static private int numeroSuivant = 0; private int numero; private String titre; public Document(String titre) { this.numero = numeroSuivant; numeroSuivant++; this.titre = titre; public Document(String titre, int numero) { if (numero < numeroSuivant) { numero = numeroSuivant; 1 this.numero = numero; numeroSuivant = numero + 1; this.titre = titre; public int getNumero(){ return numero; public String getTitre(){ return titre; public String toString() { return ("numero: "+numero+" titre: "+titre); Exercice 2On veut implementer une liste de documents dans laquelle on veut pouvoir ajouter des documents petit a petit, et y acceder par leur numero d'enregistrement. Mais plut^ot que d'utiliser les structures de collections Java (ArrayList,Vector, etc. que l'on verra dans une seance ulterieure), on veut programmer soi-m^eme \en dur" une structure de donnees. Pour implementer cette structure, on va creer une classeListeDeDocumentsavec un tableau de documentstableaucontenant les documents de la liste. Cependant, pour eviter d'avoir a augmenter la taille du tableau a chaque ajout, on va xer initialement sa taille a 1 et doubler sa taille des qu'on veut ajouter un document dont le numero d'enregistrement est plus grand que la taille du tableau.

1. Denir la classeListeDeDocumentsavec la propriete priveetableauet la methodeajouter

qui ajoute un document a la place indiquee par son numero d'enregistrement, ainsi qu'une methodegetDocumentqui prend en argument un numero et renvoie le document de la liste ayant ce numero (nulls'il n'est pas dans la liste).

2. Dans cette classe, redenir la methodetoStringpour qu'elle renvoie les descriptions de

tous les documents de la liste, separees par un saut de ligne"\n".

3. Modier la classeDocumentpour faire en sorte que tous les documents crees puissent ^etre

retrouves en utilisant une methode statiqueaccesDocumentdans la classeDocument.

Correction :

public class ListeDeDocuments { private Document[] tableau; public void ajouter(Document doc) { if (tableau.length <= doc.getNumero()) {

Document[] t = new Document[tableau.length * 2];

for (int i = 0; i < tableau.length; ++i) { t[i] = tableau[i]; tableau = t; 2 tableau[doc.getNumero()] = doc; public Document getDocument(int index) { if (index >= tableau.length) { return null; return tableau[index]; public ListeDeDocuments() { tableau = new Document[1]; public String toString() {

String resultat = "";

for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { resultat += d + "\n"; return resultat; L'inconvenient de cette representation est qu'il est dicile de parcourir la liste des documents. Cela est d^u au fait que cette liste, optimisee pour l'acces direct aux documents par leur numero, peut ainsi comporter des \trous". Exercice 3La bibliotheque est appelee a traiter des documents de nature diverse : des livres,

des dictionnaires, et autres types de documents.A chaque livre est associe, en plus, unauteuret unnombre de pages, les dictionnaires ont,

eux, pour attributs supplementaires unelangueet unnombre de tomes. On veut manipuler tous les articles de la bibliotheque au travers de la m^eme representation : celle de document.

1. Denissez les classesLivreetDictionnaireetendant la classeDocument. Denissez pour

chacune un constructeur permettant d'initialiser toutes ses variables d'instances respec- tives.

2. Redenissez la methodetoString()dans les classesLivreetDictionnairepour qu'elle

renvoie une cha^ne de caracteres decrivant unun livre ou un dictionnaire, en plus de la description normale d'un document.

Correction :

public class Livre extends Document{ private String auteur; private int nbPages; public Livre(String titre, String auteur, int nbPages) { super(titre); this.nbPages = nbPages; this.auteur = auteur; 3 public String getAuteur() { return auteur; } public int getNombreDePages() { return nbPages; } public String toString(){ return (super.toString()+" auteur: "+getAuteur()+" pages: "+getNombreDePages()); public class Dictionnaire extends Document { private int nbTomes; private String langue; public Dictionnaire(String titre, int nbTomes, String langue) { super(titre); this.nbTomes = nbTomes; this.langue = langue; public int getNombreDeTomes() { return nbTomes; } public String getLangue() { return langue; } public String toString() { return (super.toString()+" tomes: "+getNombreDeTomes()+" langue: "+getLangue());

3. Dans la classeListeDeDocuments, denissez une methodetousLesAuteursqui renvoie la

cha^ne des auteurs de tous les livres de la liste.

4. Dans la classeListeDeDocumentsdenissez une methodetousLesDicosqui renvoie une

liste de documents (sous la forme d'une nouvelle instance de la classeListeDeDocuments) contenant tous les dictionnaires de la liste.

Correction :

public ListeDeDocuments tousLesDicos() { ListeDeDocuments resultat = new ListeDeDocuments(); for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { if (d instanceof Dictionnaire) { resultat.ajouter(d); return resultat; public String tousLesAuteurs() {

String resultat = "";

for (int i = 0; i < tableau.length; ++i) {

Document d = tableau[i];

if (d != null) { if (d instanceof Livre) { resultat += ((Livre) d).getAuteur() + "\n"; 4 return resultat;

5. Denissez ensuite quelques classes supplementaires, par exempleBandeDessinee,Manga,

DictionnaireBilingue, etc. avec des proprietes en plus. Pour chacune de ces nouvelles classes, quelle classe etend-elle? Exercice 4Dans l'exercice suivant nous allons utiliser la classeFileWriterpour generer un chier. Pour l'utiliser il faut l'importerimport java.io.FileWriter;. D'autre part, l'utilisa- tion des constructeurs de cette classe, peuvent generer des exceptions du typeIOException. Il convient donc : { d'importer la classeIOExceptionavecimport java.io.IOException;, { d'ajouterthrows IOExceptiona la declaration des methodes dans lesquelles nous utilisons

FileWriter.

Un cours et un TD seront consacres a la gestion des exceptions. Enn dierents constructeurs existent pourFileWriter. Nous allons utiliser le constructeur prenant en argument une chaine de caracteres. Notez que cette cha^ne de caracteres peut specier le chemin vers le dossier dans lequel nous voulons generer nos chiers. Par exemple : FileWriter w = new FileWriter(``/local/home/monom/file''); genere un chierfile.txtvide dans mon dossier/local/home/monom/. Pour ecrire dans un tel chier, on utilise entre autres les methodes : {write(String s)qui ecrit la cha^ne s dans le chier, {close()pour mettre n a l'ecriture dans ce chier. Si vous utilisezwrite(String s), il est necessaire de terminer l'ecriture du chier en utilisant close(). { Dans la classeListeDeDocuments, denissez une fonctionsauvegardepermettant d'ecrire la liste des documents dans un chier.

Correction :

public void sauvegarde(String filename) throws IOException {

FileWriter w = new FileWriter(filename);

Document unDocument;

for (int i=0; i