Vous êtes sur la page 1sur 3

Révision Java

Exercice 1 :

• Considérons la classe Compte suivante qui représente un compte bancaire et les opérations bancaires
courantes (la suite des questions est liée à cette classe) :
class Compte{
int solde = 0;
void deposer(int montant){
solde = solde + montant; }
void retirer(int montant){
solde = solde - montant; }
void virerVers(int montant, Compte destination){
retirer(montant);
destination.deposer(montant); }
void afficher(){
System.out.println("solde : "+ solde); }
}

1. Est-ce qu’on peut exécuter dans la méthode main le code : Compte c1 = new Compte(1000);
a. Oui
b. Non
2. Quel sera l’affichage obtenu si on exécute le code suivant :
public static void main(String[] args) {
Compte c1 = new Compte();
Compte c2 = new Compte();
c1.deposer(150);
c1.virerVers(50, c2);
c1.afficher();
c2.afficher();
}
a. solde : 150 c. solde : 150
solde : 0 solde : 50
b. solde : 100 d. solde : 200
solde : 50 solde : 0

3. Quel sera l’affichage obtenu si on exécute le code suivant :


public static void main(String[] args) {
Compte c1 = new Compte();
Compte c2 = c1;
c1.deposer(150);
c1.virerVers(50, c2);
c1.afficher();
c2.afficher();
}

a. solde : 150 c. solde : 150


solde : 150 solde : 50
b. solde : 100 d. provoque une erreur
solde : 50
4. Quelles sont les méthodes possibles à ajouter à la classe Compte ? (On ne prendra pas en considération
le corps des méthodes)
a. String afficher() {} d. Compte() {}
b. public int retirer(double montant) {} e. private Compte(int solde) {}
c. private void deposer(int montant) {} f. public boolean compteVide() {}
5. On ajoutera les méthodes suivantes à la classe Compte :
void afficherCompte(){
System.out.println("Solde = " + solde + "DHs"); }
void ajouter(Compte obj){
solde = solde + obj.solde; }
String nouveau(int n){
Compte res = new Compte();
res.solde = n;
return "Compte créé avec succés"; }
boolean plusGrand(Compte obj){
if (obj.solde > solde){
return false;
} else{
return true;
} }
boolean comparer(Compte obj1, Compte obj2){
if (obj1.solde == obj2.solde){
return true;
} else{
return false;
} }

Parmi ces méthodes, lesquelles peuvent devenir des méthodes statiques sans problème (sans modifier le
corps des méthodes) ?
a. La méthode afficherCompte d. La méthode plusGrand
b. La méthode ajouter e. La méthode compare
c. La méthode nouveau
Exercice 2 :

On souhaite définir un ensemble de classes pour "modéliser" des oiseaux. On veut munir chaque
oiseau d'une méthode nommée decrire. On veut pouvoir mettre un mélange d'"oiseaux" dans un
même tableau puis, dans une boucle, pouvoir appliquer successivement la méthode decrire à tous
les "oiseaux" du tableau. On peut avoir par exemple les deux classes suivantes (dont l'en-tête peut
être complétée).

class Merle
{
void decrire()
{
System.out.println("je suis un merle");
}
}

class Pie
{
void decrire()
{
System.out.println("je suis une pie");
}
}

Il s'agit de faire en sorte qu'une méthode main construise un tableau d'oiseaux variés (par exemple
des merles et des pies), et que, grâce à une boucle appropriée, la sortie du programme soit (par
exemple):
je suis un merle
je suis une pie
je suis une pie
je suis un merle
je suis une pie
On peut reprendre les deux classes ci-dessus et compléter le fichier avec ce qui est nécessaire.

2. Dans une version un peu différente, on peut permettre des oiseaux "quelconques", et avoir une
sortie du genre :

je suis un merle
je suis une pie
je suis un oiseau "quelconque"
je suis une pie
Reprendre la première partie de l'exercice pour obtenir cela.

Vous aimerez peut-être aussi