Name of code : classe objet avancé
Categorie : Java avancé
Dans cet exemple, nous avons créé une classe `Etudiant` avec des attributs tels que le nom, le prénom, la date de naissance, l'adresse, le numéro d'étudiant et une liste de notes. Nous avons également ajouté deux fonctions qui calculent la moyenne des notes de l'étudiant et déterminent sa mention. Enfin, nous avons ajouté une méthode qui renvoie une description détaillée de l'objet. Dans la fonction `main`, nous avons créé un objet `Etudiant` avec des valeurs initiales, affiché sa description et modifié certaines de ses valeurs. Ensuite, nous avons affiché la nouvelle description de l'objet pour vérifier que les modifications ont été prises en compte.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
public class Etudiant {
private String nom;
private String prenom;
private LocalDate dateNaissance;
private String adresse;
private String numeroEtudiant;
private ArrayList notes;
public Etudiant(String nom, String prenom, LocalDate dateNaissance, String adresse, String numeroEtudiant, ArrayList notes) {
this.nom = nom;
this.prenom = prenom;
this.dateNaissance = dateNaissance;
this.adresse = adresse;
this.numeroEtudiant = numeroEtudiant;
this.notes = notes;
}
public String getNom() {
return nom;
}
public void setNom(String nom) {
this.nom = nom;
}
public String getPrenom() {
return prenom;
}
public void setPrenom(String prenom) {
this.prenom = prenom;
}
public LocalDate getDateNaissance() {
return dateNaissance;
}
public void setDateNaissance(LocalDate dateNaissance) {
this.dateNaissance = dateNaissance;
}
public String getAdresse() {
return adresse;
}
public void setAdresse(String adresse) {
this.adresse = adresse;
}
public String getNumeroEtudiant() {
return numeroEtudiant;
}
public void setNumeroEtudiant(String numeroEtudiant) {
this.numeroEtudiant = numeroEtudiant;
}
public ArrayList getNotes() {
return notes;
}
public void setNotes(ArrayList notes) {
this.notes = notes;
}
// Fonction pour calculer la moyenne des notes de l'étudiant
public double calculerMoyenne() {
double total = 0;
for (int note : notes) {
total += note;
}
return total / notes.size();
}
// Fonction pour déterminer la mention de l'étudiant
public String determinerMention() {
double moyenne = calculerMoyenne();
if (moyenne < 10) {
return "Non admis";
} else if (moyenne < 12) {
return "Admis";
} else if (moyenne < 14) {
return "Mention assez bien";
} else if (moyenne < 16) {
return "Mention bien";
} else {
return "Mention très bien";
}
}
// Méthode pour retourner une description détaillée de l'objet
public String getDescription() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
return "Nom : " + nom +
"\nPrénom : " + prenom +
"\nDate de naissance : " + dateNaissance.format(formatter) +
"\nAdresse : " + adresse +
"\nNuméro d'étudiant : " + numeroEtudiant +
"\nNotes : " + notes +
"\nMoyenne : " + calculerMoyenne() +
"\nMention : " + determinerMention();
}
public static void main(String[] args) {
// Créer un objet Etudiant avec des valeurs initiales
ArrayList notes = new ArrayList<>();
notes.add(12);
notes.add(14);
notes.add(16);
Etudiant etudiant = new Etudiant("Dupont", "Jean", LocalDate.of(1990, 7, 15), "10 rue des Lilas", "E123456", notes);
// Afficher la description de l'objet Etudiant
System.out.println(etudiant.getDescription());
// Modifier certaines valeurs de l'objet Etudiant
etudiant.setAdresse("15 avenue des Roses");
etudiant.getNotes().add(18);
// Afficher la nouvelle description de l'objet Etudiant
System.out.println("\nNouvelle description :");
System.out.println(etudiant.getDescription());
}
}