From c8ab9dfc391d7321dd45bebf3e2ce3159d392376 Mon Sep 17 00:00:00 2001 From: Vincent Guillet Date: Mon, 28 Apr 2025 18:09:31 +0200 Subject: [PATCH] =?UTF-8?q?Cr=C3=A9ation=20de=20la=20classe=20Personne=20c?= =?UTF-8?q?ompl=C3=A8te=20avec=20constructeur=20et=20m=C3=A9thodes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- com/humanbooster/exercices/Personne.java | 145 +++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 com/humanbooster/exercices/Personne.java diff --git a/com/humanbooster/exercices/Personne.java b/com/humanbooster/exercices/Personne.java new file mode 100644 index 0000000..4723d77 --- /dev/null +++ b/com/humanbooster/exercices/Personne.java @@ -0,0 +1,145 @@ +package com.humanbooster.exercices; + +public class Personne { + + private String nom; + private String prenom; + private int age; + private static int nombrePersonnes; + + public Personne() { + nombrePersonnes++; + } + + /** + * Constructeur de la classe Personne + * + * @param nom Nom de la personne + * @param prenom Prénom de la personne + * @param age Âge de la personne + * @throws IllegalArgumentException Si le nom ou le prénom est vide, ou si l'âge est égal à zéro + */ + public Personne(String nom, String prenom, int age) throws IllegalArgumentException { + + if (nom == null || nom.trim().isEmpty()) throw new IllegalArgumentException("Le nom ne peut pas être vide"); + else this.nom = nom.trim(); + + if (prenom == null || prenom.trim().isEmpty()) throw new IllegalArgumentException("Le prénom ne peut pas être vide"); + else this.prenom = prenom.trim(); + + if (age == 0) throw new IllegalArgumentException("L'âge ne peut pas être égal à zéro"); + else if (age < 0) this.age = age * (-1); + else this.age = age; + + nombrePersonnes++; + } + + /** + * Récupère le nom de la personne + * + * @return Nom de la personne + */ + public String getNom() { + return nom; + } + + /** + * Modifie le nom de la personne + * + * @param nom Nom de la personne + */ + public void setNom(String nom) { + if (nom == null || nom.trim().isEmpty()) throw new IllegalArgumentException("Le nom ne peut pas être vide"); + else this.nom = nom.trim(); + } + + /** + * Récupère le prénom de la personne + * + * @return Prénom de la personne + */ + public String getPrenom() { + return prenom; + } + + /** + * Modifie le prénom de la personne + * + * @param prenom Prénom de la personne + */ + public void setPrenom(String prenom) { + if (prenom == null || prenom.trim().isEmpty()) throw new IllegalArgumentException("Le prénom ne peut pas être vide"); + else this.prenom = prenom.trim(); + } + + /** + * Récupère l'âge de la personne + * + * @return Âge de la personne + */ + public int getAge() { + return age; + } + + /** + * Modifie l'âge de la personne + * + * @param age Âge de la personne + */ + public void setAge(int age) { + if (age == 0) throw new IllegalArgumentException("L'âge ne peut pas être égal à zéro"); + else if (age < 0) this.age = age * (-1); + else this.age = age; + } + + /** + * Récupère le nombre de personnes créées + * + * @return Nombre de personnes créées + */ + public static int getNombrePersonnes() { + return nombrePersonnes; + } + + /** + * Crée une nouvelle personne + * + * @param nom Nom de la personne + * @param prenom Prénom de la personne + * @param age Âge de la personne + * @return Nouvelle instance de la classe Personne + */ + public Personne creer(String nom, String prenom, int age) { + return new Personne(nom, prenom, age); + } + + /** + * Compare deux personnes en fonction de leur âge + * + * @param personne1 Première personne à comparer + * @param personne2 Deuxième personne à comparer + */ + public void comparer(Personne personne1, Personne personne2) { + + String nomP1 = personne1.getPrenom() + " " + personne1.getNom(); + String nomP2 = personne2.getPrenom() + " " + personne2.getNom(); + + if (personne1.getAge() > personne2.getAge()) { + System.out.println(nomP1 + " est plus vieux que " + nomP2); + } else if (personne1.getAge() < personne2.getAge()) { + System.out.println(nomP2 + " est plus vieux que " + nomP1); + } else { + System.out.println(nomP1 + " et " + nomP2 + " ont le même âge"); + } + } + + /** + * Récupère une chaîne de caractères représentant la personne + * + * @return Chaîne de caractères représentant la personne + */ + @Override + public String toString() { + return this.nom + " " + this.prenom + ", " + this.age + " ans"; + } +} \ No newline at end of file