Vous êtes sur la page 1sur 7

NOM et PRÉNOM :

Devoir surveillé

Semestre : 1 2

Session : Principale Rattrapage

Unité d’enseignement : Modélisation et programmation objet


Module (s) : Conception par objet et programmation JAVA
Classe(s) : 3B
Nombre des questions : 8 QCU et 1 Problème Nombre de pages :7
Date : 12/04/2023 Heure:13h45. Durée :1H

RÉPONDEZ AU QCU SUR LA DERNIÈRE PAGE !!


1. Quelle est l'extension de nom de fichier propre à un fichier compilé en bytecode
Java?
● A .dll
● B .java
● C .class
● D .bytecode

2. Quel est le groupe qui ne contient que des types primitifs


● A [double, int, char, var, float, byte]
● B [byte, char, int, double, Float ]
● C [int, String, char, double, float, long]
● D [int, char, double, float, byte ]

3. Quels keywords sont utilisés pour spécifier la visibilité des propriétés et des
méthodes ?
● A default, private, final, protected
● B abstract, protected , private
● C default, protected, public, private
● D protected, public, private

4. Quel est le modificateur que nous devons utiliser pour interdire la redéfinition
d’une méthode

● A abstract
● B static
● C final
● D public

1
5. Quel est le résultat de ce code?

● A Erreur de compilation
● B Erreur d’exécution
● C 7
● D Rien

6. Considérons les classes suivantes:

Quel sera le résultat de l'exécution de ce code?

● A Adding a Fruit to the Basket


● B Adding an Apple to the Apple Basket
● C Une erreur de compilation se produit
● D Eating an Apple

2
7. Soit le code suivant:

class A {
public void m1() { System.out.println("m1 dans A"); }
}
class B extends A { public void m1(A a) { System.out.println("m1 dans B");}
}
public class Q2 {
public static void main(String[] args) {
A a = new B();
a.m1();
}}

Quel est la bonne réponse pour décrire la méthode m1() de la classe B


● A l s’agit d’une redéfinition (overriding) de la méthode « m1 » de la classe A
● B Il s’agit d’une surcharge (surdéfinition ou overloading) de la méthode
« m1 » de la classe A
● C Il s’agit d’une surcharge (surdéfinition ou overloading) de la méthode
« m1 » de la classe B héritée de la classe A
● D Il s’agit d’une redéfinition (overriding) d’une méthode « m1 » dans la
classe Object

8. Quelle est la sortie de ce code

● A Try
● B Catch Error of index
● C Try Catch Error of index
● D Il n’affiche rien

3
Partie 2 : L'agence de location M-Trott
L'agence de location de motos et trottinettes électriques "M-Trott" doit mettre en
place un système de gestion de location. Le système doit permettre aux utilisateurs de
réserver une moto ou une trottinette électrique en ligne. Pour le faire vous devez suivre le
travail demandé pour soit complété du code soit le corriger en prenant en considération
l’annexe suivant :
1. Todo 1 : Ajouter ,dans la classe Vehicule, les mots clé adéquats pour appliquer
l’encapsulation sur les attributs de la classe Vehicule et ajouter les méthodes
nécessaires seulement pour l’attribut nivbatterie
2. Todo 2 : Corriger la signature de la méthode equals en respectant sa
redéfinition et compléter son traitement sachant que 2 véhicules sont
considérés identiques si leur modèle est le même.

public class Vehicule {


/*Todo 1*/private. String modele; 0.25 pts
/*Todo 1*/private float nivbatterie; 0.25 pts
boolean reservé;
public Vehicule() {
}
public Vehicule(String modele, float nivbatterie) {
this.modele = modele;
this.nivbatterie = nivbatterie;
}
/*Todo 2*/ 1.5 pts
public boolean equals(Vehicule v) public boolean equals(Object obj) {
if(obj instanceof Vehicule){
Vehicule v =(Vehicule) obj;
return this.nivbatterie== v.nivbatterie && this.modele.equals(v.modele);
}
return false;
}

public String toString() {


return "Vehicule{" + "nom=" + modele + ", niv=" + nivbatterie + ", nivbatterie=" +
nivbatterie + '}';
}
/*Todo 1*/ 1 pts
public float getNivbatterie() {
return nivbatterie;
}
public void setNivbatterie(float nivbatterie) {
this.nivbatterie = nivbatterie;
}
3. Todo 3 : Dans la classe Moto compléter le constructeur paramétré

4
4. Todo 4 : Créer,dans la classe Moto, la méthode qui permet d’afficher toutes les
caractéristiques du moto (modèle, niveau de batterie et nombre de roues)

public class Moto extends Vehicule {


int nbroues;
public Moto() {
}
/*Todo 3*/ 1pts
public Moto(String modele, float nivbatterie,int nbroues) {
super(modele, nivbatterie);
this.nbroues = nbroues;
}

/*Todo 4*/
public String toString() { 1.5 pts

return "Moto{" +super.toString() + "nbroues=" + nbroues + '}';


}

Pour le module location on vient d’ajouter la méthode suivante dans la classe


Vehicule : public abstract float louerVehicule(int nbHeure); afin de faire une simulation du
prix de location qui est calculer en fonction de la performance de la trottinette à choisir
(Formule de calcul : prix = 5 dt/nbHeure si la performance est inférieur a 5klm/h sinon 20
dt/nbHeure )
5. quelle mise à jour faut-il faire pour la classe Vehicule ?
public abstract class Vehicule 0.5 pts

6. Todo5 : Compléter la classe Trottinette avec la méthode qu’il faut.

public class Trottinette extends Vehicule{


int performance;
public Trottinette() {
}
/*Todo 5*/
public float louerVehicule(int nbHeure) { 1 pts
if(this.performance < 5)
return 5* nbHeure;
else
return 20* nbHeure;
}
}
En ce qui concerne le module Agence : "M-Trott"souhaite gérer son parc de véhicules
électriques sachant qu’elle dispose de 100 motos et 50 trottinettes électrique au total;

5
7. Todo 6: Ajouter, dans la classe Agence, l’instruction nécessaire pour créer
l’ensemble des ces véhicules (les motos et les trottinettes à la fois ).
8. Todo7 : compléter la méthode public int getNBTrotinette() afin de retourner
seulement le nombre de trottinettes disponibles dans l’agence

On suppose que "M-Trott" disposera de plusieurs agences et souhaite avoir le nombre total de
véhicules qui sont disponibles,
9. Todo8 : compléter la méthode public void setVehiculeReservé(Vehicule v) qui
permet de changer l'état du véhicule qui vient d'être réservé et de calculer le
nombre de véhicules qui sont disponibles
10. Todo9 : compléter les déclarations des attributs : CAPACITEMAX,
nbVehiculetotal et nbTotalVehiculeDisponible

public class Agence {


String nom;
/*Todo 9*/ final int CAPACITEMAX = 150; 0.5 pts
int nbVehicule;
/*Todo 9*/ static int nbVehiculetotal; 0.25 pts
/*Todo 9*/static int nbTotalVehiculeDisponible; 0.25 pts
/*Todo 6*/ Vehicule[] vehicules = new Vehicule[CAPACITEMAX] ; 1 pts
public void addVehicule(Vehicule v){
if(nbVehicule < CAPACITEMAX){
this.vehicules[nbVehicule]=v;
nbVehicule ++;
nbVehiculetotal++ ; } }
/*Todo 7*/ public int getNBTrotinette(){ 1.5 pts
int nbTrotinette =0 ;
for (int i = 0; i < this.nbVehicule; i++) {
if(this.vehicules[i] instanceof Trotinette)
nbTrotinette ++;
}
return nbTrotinette; }
/*Todo 8*/ 1.5 pts
public void setVehiculeReservé(Vehicule v){
for (int i = 0; i < this.nbVehicule; i++) {
if(this.vehicules[i].equals(v)) {
this.vehicules[i].disponible = false; }
nbVehiculeDisponibletotal = nbVehiculetotal-1;
}
}

6
RÉPONSES QCU :

1. ………….
2. ………….
3. ………….
4. ………….
5. ………….
6. ………….
7. ………….
8. ………….

Vous aimerez peut-être aussi