Compare commits

..

2 Commits

Author SHA1 Message Date
Vincent Guillet
b4fa8c0608 Ajout de la méthode main pour tester le code + corrections mineures 2025-04-28 18:12:37 +02:00
Vincent Guillet
c8ab9dfc39 Création de la classe Personne complète avec constructeur et méthodes 2025-04-28 18:09:31 +02:00

View File

@@ -0,0 +1,179 @@
package com.humanbooster.exercices;
import java.util.ArrayList;
import java.util.List;
public class Personne {
private String nom;
private String prenom;
private int age;
private static int nombrePersonnes;
/**
* Constructeur par défaut de la classe Personne
* Initialise le nom, le prénom et l'âge à des valeurs par défaut
*/
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++;
}
public static void main(String[] args) {
List<Personne> personnes = new ArrayList<>();
Personne personne1 = new Personne();
personnes.add(personne1);
Personne personne2 = Personne.creer("Dupont", "Jean", 30);
personnes.add(personne2);
personne1.setNom("Dupond");
personne1.setPrenom("Alice");
personne1.setAge(25);
System.out.println("Nombre de personnes créées : " + Personne.getNombrePersonnes());
for (Personne p : personnes) {
System.out.println(p.toString());
}
Personne.comparer(personne1, personne2);
Personne personne3 = new Personne();
System.out.println(personne3.toString());
}
/**
* 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 static 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 static 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";
}
}