Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Exercice 1 : (3 points)
1- Que se passe t-il si une classe A implémente deux interfaces I1 et I2 possédant la même méthode
void f(int n); et une même constante N?
La classe A doit implémenter la méthode void f(int n) une seule fois. L'accès à la constante N doit
être préfixé par le nom de l'interface si on veut accéder a N de I1 on ecrit I1.N sinon I2.N . 0.5*2
2- Dans quel cas peut-on écrire le code suivant : A a = new B() ;
2.1- si A est une classe abstraite, et B sous classe de A ?
2.2- si A est une interface, implémentée par la classe B ?
oui pour les deux 0.25*2
3- Que signifie this en Java ? De quel type est il ?
This référence l’instance courante, Il a le type de la classe dans laquelle il est utilisé. 0.25*2
4- Quel est l'avantage d'une ArrayList par rapport à un tableau ?
Une ArrayList a une taille dynamique alors que la taille d’un tableau est déterminée définitivement
lors de la construction. 1 point
Exercice 2 : (3 points) Qu'affiche le programme suivant ?
pour les valeurs suivantes de args : 3 3.5 1 pour les valeurs suivantes de args : 5 2 -5
0.25*5 0.25*7
a = 1.0 a = 1.0
mA(3) = 4.0 mA(5) = 6.0
a = 1.0 a = 1.0
mD(3) = 13.0 c = 3
a = 1.0 mC(5) = 34.0
a = 1.0
c = 3
Remarque importante pour les exercices 3 et 4 : Ceci est un corrigé type. Cette solution n'est pas
unique.
Exercice 3 : (7,5 points)
1. Nous supposerons que Personnel, Enseignant et Chercheur sont trois classes concrètes, donner le
diagramme de classe (sans les attributs et les méthodes) en précisant les relations entre les classes.
0.75 point
Personnel
Enseignant
Chercheur
1
2. Implémenter les différentes classes (Personnel 0.75, Enseignant 0.75 et Chercheur 0.75) en ajoutant
dans chaque classe un constructeur permettant d'initialiser les attributs 0.5*3, la méthode afficher
0.25*3.
3. public class Personnel implements Comparable (0.25 point pour implements Comparable)
{
private String nom,prenom;
private long numeroSS;
private int anneeNaissance,annéeRecrutement ;
public Personnel(String nom, String prenom, long numeroSS, int anneeNaissance,
int annéeRecrutement) {
this.nom = nom;
this.prenom = prenom;
this.numeroSS = numeroSS;
this.anneeNaissance = anneeNaissance;
this.annéeRecrutement = annéeRecrutement;
}
public void afficher(){
System.out.println(nom+ " "+ prenom+ " "+ numeroSS+" "+ anneeNaissance+ " " +
annéeRecrutement );
}
4. public int compareTo(Object O){ //0.75 point
Personnel P=(Personnel)O;
if (nom.compareTo(P.nom)== 0)
return (prenom.compareTo(prenom));
return nom.compareTo(P.nom);
}
}
import java.util.ArrayList;
public class Enseignant extends Personnel {
private String specialite, grade;
private ArrayList <String> matiereEnseigne;
public Enseignant(String nom, String prenom, long numeroSS,
int anneeNaissance, int annéeRecrutement, String specialite,
String grade, ArrayList<String> matiereEnseigne) {
super(nom, prenom, numeroSS, anneeNaissance, annéeRecrutement);
this.specialite = specialite;
this.grade = grade;
this.matiereEnseigne = matiereEnseigne;
}
public void afficher(){
super.afficher();
System.out.println("\n "+specialite+ " "+ grade+ " "+
matiereEnseigne.toString() );
}
}
import java.util.ArrayList;
public class Chercheur extends Enseignant{
private String domaineDeRecherches;
private ArrayList <String> ListeDePublications;
public Chercheur(String nom, String prenom, long numeroSS,
int anneeNaissance, int annéeRecrutement, String specialite,
String grade, ArrayList<String> matiereEnseigne,
String domaineDeRecherches, ArrayList <String> ListeDePublications) {
super(nom, prenom, numeroSS, anneeNaissance, annéeRecrutement,
specialite, grade, matiereEnseigne);
this.domaineDeRecherches = domaineDeRecherches;
this.ListeDePublications = ListeDePublications;
}
public void afficher(){
super.afficher();
2
System.out.println("\n "+ domaineDeRecherches+ " "+
ListeDePublications.toString());
}
}
6. La classe programme principal : 1.25 points
import java.util.*;
public class Main {
}while(!stop);
}
Arrays.sort(T);
for(i=0;i<n;i++) T[i].afficher();
}
Exercice 4 : (6,5 points)
1. Modifier la classe Pile pour que l'opération de dépilement provoque une exception personnalisé
PileVideException si la pile est vide.
public class PileVideException extends Exception { 0.5}
import java.util.LinkedList;
public class Pile {
protected LinkedList Q= new LinkedList();
}
}
}
catch (PileVideException e) {
super.empiler(x);
}
}
}
3. Le programme principal 2 points
import java.util.Scanner;
public class Exo4 {
}}