/** * I N F 1 1 2 0 - g r o u p e 2 1 - H 0 6 - T P 3 * * Cree des animaux pouvant appartenir a l'une des sortes suivantes : * 0 : chat 4 : iguane 8 : furet * 1 : chien 5 : hamster 9 : autre * 2 : oiseau 6 : lapin * 3 : serpent 7 : souris * * Chaque animal possedera un numero (attribue automatiquement), une sorte (un entier entre 0 et 9 * inclusivement selon la liste precedente), des informations supplementaires sous forme de chaine * de caracteres (String), un nom (String), une date de naissance (de type Date), une date de * vente (de type Date), s'il est vendu ou non (un booleen) ainsi qu'un prix (double). * * Une fois un animal cree, seuls les attributs suivants pourront etre modifies : * - les informations * - le nom * - la date de vente : doit absolument etre superieure ou egale a la date de naissance. * - s'il est vendu ou non * - le prix */ public class Animal { public static void main (String[] params) { } //---------- P a r t i e p u b l i q u e ----------// public static final String[] nomsSortes = { "chat", "chien", "oiseau", "serpent", "iguane", "hamster", "lapin", "souris", "furet", "autre" }; // Constructeurs /** * Cree un nouvel animal avec les donnees passes en parametre. * Le numero sera attribue automatiquement par le constructeur. Les numeros debutent a 0. * La date de vente sera egale a null puisque l'animal n'est pas vendu * L'animal n'est pas vendu encore. * Si la sorte fournie est inferieure a 0 ou plus grande que 9, la sorte 9 sera attribuee. */ public Animal ( int sorte, String informations, String nom, Date dateNaissance, double prix ) { this.informations = informations; this.nom = nom; this.dateNaissance = dateNaissance; nbAnimaux = nbAnimaux ++; dateVente = null; venduOuNon = false; prix = 0.0; if (this.sorte < 0 || this.sorte > 9){ sorte = 9; } } /** * Cree un nouvel animal avec les donnees passes en parametre. * Le numero sera attribue automatiquement par le constructeur. Les numeros debutent a 0. * Les informations seront une chaine de caracteres vide * Le nom sera la chaine de caracteres correspondant a la sorte d'animal (voir liste ci-haut) * La date de vente sera egale a null puisque l'animal n'est pas vendu * L'animal n'est pas vendu encore. * Si la sorte fournie est inferieure a 0 ou plus grande que 9, la sorte 9 sera attribuee. */ public Animal ( int sorte, Date dateNaissance, double prix ) { this.informations = null; this.nom = String.valueOf (nomsSortes); this.dateNaissance = dateNaissance; nbAnimaux = nbAnimaux ++; dateVente = null; venduOuNon = false; prix = 0.0; if (this.sorte < 0 || this.sorte > 9){ sorte = 9; } } // Observateurs (getters) d'instance /** * Observateur #1 * Cet observateur permet d'attribuer un ID * unique pour chaque nouvel animal crée. */ public static int donnerNbAnimaux () { return nbAnimaux; } /** * Observateur #2 * Cet observateur permet d'obtenir * la sorte de l'animal * (un entier entre 0 et 9 inclusivement). * 0 : chat 4 : iguane 8 : furet * 1 : chien 5 : hamster 9 : autre * 2 : oiseau 6 : lapin * 3 : serpent 7 : souris */ public int donnerSorte () { return sorte; } /** * Observateur #3 * Cet observateur permet d'obtenir * des informations sous forme de chaînes * de caractères (String). */ public String donnerInformations () { return informations; } /** * Observateur #4 * Cet observateur permet d'obtenir * le nom de l'animal de type String. */ public String donnerNom () { return nom; } /** * Observateur #5 * Cet observateur permet d'obtenir * la date de naissance de l'animal * de type Date. */ public Date donnerDateNaissance (){ return dateNaissance; } /** * Observateur #6 * Cet observateur permet d'obtenir * la date de vente de l'animal * de type Date. */ public Date donnerDateVente () { return dateVente; } /** * Observateur #7 * Cet observateur permet d'obtenir * une valeur de type booléenne qui * défini si l'animal a été vendu * ou non. */ public boolean donnerVenduOuNon () { return venduOuNon; } /** * Obervateur #8 * Cet observateur permet d'obtenir * le prix de l'animal de type * double. */ public double donnerPrix () { return prix; } // Modificateurs (setters) d'instance /** * Modificateur #1 * Ce modificateur permet de modifier la date * de vente de cet animal avec date. * Si la date de vente est inferieure a la date de * naissance, aucune modification n'est effectuee. * (Aucun message d'erreur ne sera affiche) */ public void modifierDateVente ( Date dateVente ){ this.dateVente = dateVente; } /** * Modificateur #2 * Ce modificateur permet de modifier les * informations initiales par de * nouvelles informations. */ public void modifierInformations ( String informations ) { this.informations = informations; } /** * Modificateur #3 * Ce modificateur permet de modifier * le nom entré au départ par un * nouveau nom. */ public void modifierNom ( String nom ) { this.nom = nom; } /** * Modificateur #4 * Ce modificateur permet de modifier * la valeur initiale de type booléen * qui détermine si l'animal a été vendu ou non. */ public void modifierVenduOuNon ( boolean venduOuNon ) { this.venduOuNon = venduOuNon; } /** * Modificateur #5 * Ce modificateur permet de modifier * le prix de l'animal si celui-ci * à changé. */ public void modifierPrix ( double prix ) { this.prix = prix; } //---------- P a r t i e p r i v e e ----------// // variable de classe (pour usage interne : donner un numero a chaque animal cree) public static int nbAnimaux = 0; // variables d'instance private int numero; private int sorte; private String informations; private String nom; private Date dateNaissance; private int annee,mois,jour; private Date dateVente; private boolean venduOuNon; private double prix; }