DS - Java - 2324 - 3B - Correction
DS - Java - 2324 - 3B - Correction
DS - Java - 2324 - 3B - Correction
DS Écrit
1
2. Quelle est la sortie de ce programme ?
A. true true
B. false false
C. true false
D. false true
A. n’importe classe
B. que la classe Etudiant
C. n’importe quelle classe dans le package entities
D. n’importe quelle classe qui hérite de la classe Etudiant
2
Exercice II : Problème (16 pts)
RQ-2 : Il faut noter que tous les attributs de toutes les classes
ont le niveau d’accès « private ».
3
1. TODO 1 (1pt) : La classe « Person » doit permettre l’héritage
seulement pour les classes « Trainer » et « Member ».
Classe Person
//TODO 1
public abstract sealed class Person permits Member, Trainer{
//TODO 2
//TODO 3
@Override
public String toString(){
return "cin : " + cin + " | " + firstName + " " + lastName + " , banned = "
+ banned;
}
//TODO 4
public abstract void showLabel();
}
Classe Trainer
//TODO 5
public non-sealed class Trainer extends Person{
//TODO 6
//TODO 7
5
public void setTrainerId(String trainerId) {
if (!trainerId.isEmpty()) { // trainerId != null // !trainerId.isBlank()
this.trainerId = trainerId;
}
}
//TODO 8
@Override
public void showLabel() {
System.out.println("I’m a professional trainer");
}
Classe Member
//TODO 9
public final class Member extends Person {
//TODO 10
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Member member = (Member) o;
return member.memberId.equals(this.memberId) &&
6
member.getCin()==getCin();
}
//TODO 11
@Override
public void showLabel() {
System.out.println("I’m a member having " + memberId + "like member
id");
}
//TODO 12
@Override
public String toString() {
return super.toString() +
" | memberId='" + memberId + '\'' +
"}";
}
}
Classe Gym
//TODO 13
private String name ;
private final int CAPACITE_MAX = 30;
private Person[] team;
7
//TODO 14
//TODO 15
public void getStatistics(){
int nbrTrainers = 0;
int nbrMembers = 0;