package Cours4NotesExpress; import java.util.ArrayList; /* * Nous introduisons la notion de liste dans ce fichier * Une liste peut se représenter en Java par plusieurs classes. * * Une liste est une succession de valeurs : * - toutes de même type * - ordonnées * - indexées par leur numéro de rang dans la succession * - extensible * * Dans notre contexte, le type des valeurs peut être une classe. * Si on désire une liste de valeurs d'un type primitif (int, double, ...), * on devra utiliser une classe enveloppe (Integer, Double, ...) * * Dans le cadre de ce cours, nous nous limiterons à la classe ArrayList, * qui est basée sur une mise en oeuvre avec un tableau. * Nous n'étudions pas les tableaux primitifs dans ce cours (ceux-ci ne sont * pas extensibles). * Vous les trouverez décrits dans le polycopié si vous êtes intéressés. * */ public class AgenceImmobiliere { // Attribut représentant le nom : rien de nouveau ! private String nom; // Attribut représentant la liste des appartements gérés // par l'agence immobilière. // Vous observez ici la manière dont on DECLARE une liste. // On indique le type ArrayList qui doit être importé par // import java.util.ArrayList // et le type des éléments stockés dans la liste, ici des appartements private ArrayList apptGeres = new ArrayList<>(); // pour créer véritablement la liste, on doit le faire lors de la déclaration // de l'attribut, ou bien dans le(s) constructeur(s). // cela se fait avec new ArrayList<>(), comme pour tout objet. // Constructeurs public AgenceImmobiliere() { // à compléter } public AgenceImmobiliere(String nom, ArrayList apptGeres) { this.nom = nom; this.apptGeres = apptGeres; } public AgenceImmobiliere(String nom) { this.nom = nom; } // Accesseurs public String getNom() { return this.nom; } public void setNom(String nom) { this.nom = nom; } // IMPORTANT : On n'écrit volontairement pas de méthode d'accès à apptGeres // En effet cela laisserait l'accès totalement libre à toute manipulation /* * Méthodes * Nous allons introduire différentes méthodes. * Elles vont nous permettre d'observer différentes méthodes sur les listes. * */ /* * Connaître le nombre d'appartements gérés * Illustration de la méthode size */ public int nbAppartGeres() { return this.apptGeres.size(); } /* * Connaître l'appartement de rang i * Illustration de la méthode get */ public Appartement apptRang(int i) { // Les indices vont de 0 à size()-1 if (i>=0 && i