Compare commits
2 Commits
9a6a2cce6d
...
b4fa8c0608
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4fa8c0608 | ||
|
|
c8ab9dfc39 |
179
com/humanbooster/exercices/Personne.java
Normal file
179
com/humanbooster/exercices/Personne.java
Normal 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";
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user