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