Examen : Langage de programmation Java Durée : 2 H En cas d'ambiguïté dans le t
Examen : Langage de programmation Java Durée : 2 H En cas d'ambiguïté dans le texte, levez cette ambiguïté en présentant votre interprétation personnelle. Traitez les questions dans l'ordre de votre choix. N'oubliez pas de commenter vos programmes. Exercice 1 : Questions de cours (5 pts) Donner la définition d'une Classe. (1 pt) Quelle est la différence entre une méthode en Java et une fonction en C ? (1 pt) Quelle est la différence entre une classe abstraite et une interface ? Quelle est la syntaxe Java pour définir une interface ? (1 pt) Quelle est la différence entre une collection de type ArrayList et une collection de type LinkedList? (1 pt) Pourquoi la machine virtuelle joue-t-elle un rôle important dans la plateforme Java ? (1pt) Exercice 2 : QCM (5 pts) Répondre par exemple par : "Q12 : Réponse 1 et 3" Que signifie le mot clef "static" associé à un attribut ? Que la valeur de cet attribut est constante Que cet attribut n'est visible que dans la classe où il est défini Que cet attribut sera toujours passé par valeur Que cet attribut a une valeur unique pour toutes les instances de la classe Au sujet du mot clef "abstract", quelle assertion est fausse ? Une classe abstraite ne peut être instanciée Une méthode abstraite n'a pas d'implémentation Une classe abstraite n'a pas forcément de classe fille Une classe abstraite doit contenir au moins une méthode abstraite Une interface en Java peut contenir : Des déclarations de méthodes et de constantes Des déclarations de méthodes Des déclarations de méthodes et de méthodes statiques Des déclarations de méthodes et de constructeurs Quelle différence existe t-il entre les interfaces List et Set ? Une List peut contenir une référence null, pas un Set Un Set peut contenir deux fois le même élément, pas une List Une List peut contenir deux fois le même élément, pas un Set Un Set peut contenir une référence null, pas une List Quel est le droit d'accès le plus restrictif pour donner l'accès aux membres d'une autre classe de même package ? public default access abstract protected La déclaration suivante : public class MaClass<T> {… } permet de définir... Rien du tout en java Un type générique Une classe abstraite dont la classe T hérite forcément Un type comparable avec le type T Dans quelle situation utilise t-on la séquence : try-catch-finally ? Pour traiter les exceptions Pour sortir du programme Pour déboguer le code Peut-on utiliser plusieurs blocs catch après un bloc try ? Vrai Faux Quelle instruction faut-il utiliser pour créer un nouveau tableau d'entiers de type int de 5 cases ? Array t = new Array ("int", 5); int t = new int[5]; int[] t = new int[5]; int[] t = new int[4]; Array t = new int[5]; Le code suivant... import java.util.*; public class Test { public static void main(String args[]) { Set<Integer> s = new TreeSet<Integer>(); s.add(3); s.add(1); s.add('2'); System.out.println(s); } } ne compile pas. compile, mais lève une exception. compile, s'exécute et affiche "1". compile, s'exécute et affiche "[3,1,2]". compile, s'exécute et affiche "[1,2,3]". Exercice 3 : (10 pts) Les questions sont suffisamment expliquées. Si vous avez une remarque reportez-la sur votre copie, il en sera tenu compte. On souhaite mettre en place la gestion des ventes d'articles électroménagers dans un magasin. La phase d'analyse/conception du problème a conduit au diagramme de classes suivant : examenEMsi Diagramme de classe Classe Article : public class Article { protected int code; protected String nom; protected double prixHT; public Article(String nom, double prixHT) { // (1) A compléter } public double prixTransport() { return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article } public String toString() { return this.code + " " + this.nom; } } Ecrire le constructeur de la classe article. Le code doit être unique pour chaque article. (1pt) Comment créer une instance de la classe Article ? (0,5pt) Quel est l'intérêt de redéfinir la méthode toString() dans toutes vos classes ? (1pt) Classe des articles Fragiles : Donner deux constructeurs de la classe Fragile à partir du constructeur de sa classe de base. l'un en précisant l'emballage l'autre non. (1pt) Le prix de transport d'un article fragile est deux fois le prix de transport normal d'un Article. Redéfinir la méthode prixTransport() de la classe Fragile. (1pt) Peut-on écrire : Article tv = new Fragile ("LG", 7000.00); Si oui, quel est le prix de transport de l'article tv ? (1pt) Classe Magasin (un ensemble d'articles électroménagers) : Quelle relation existe-t-il entre Magasin et Article ? (0,5pt) Ajouter les attributs nécessaires pour implémenter cette relation (vous choisirez de quel côté de la relation ajouter ces attributs). (1pt) La méthode add() permet d'ajouter un article et la méthode contains() vérifie si un article est disponible au magasin. Donner le plus simplement possible le code de ces deux méthodes. (2pt) Interface Exportable : Expliquer en quelques mots comment rendre nos articles exportables à l'étranger? (1pt) //Source : www.exelib.net reponse Exercice 1 : Questions de cours Une classe est un modèle permettant de construire des objets qui ont le même comportement. On peut dire également une classe est moule permettent de construire des objets qui ont le même comportement. Une méthode en Java est utilisée pour modifier l’état d’un Objet et de renvoyer l’état d’un Objet. Une fonction en C est utilisée pour effectuer des calculs….. Une méthode est une fonction associée à un objet. Une classe abstraite est une classe qui contient au moins une seule méthode abstraite, par contre toutes les méthodes d’une interface sont abstraites. La différence entre ArrayList et LinkedList : ArrayList: est un tableau dynamique. LinkedList : est une liste chainée. La machine virtuelle permet : l'interprétation du bytecode. l'interaction avec le système d'exploitation. la gestion de sa mémoire grâce au ramasse miettes. Exercice 2 : QCM Q1 : Réponse 4 Q2 : Réponse 1, 2 et 3 Q3 : Réponse 1 Q4 : Réponse 1, 3 Q5 : Réponse 2 Q6 : Réponse 2 Q7 : Réponse 1 Q8 : Réponse 1 Q9 : Réponse 2 Q10 : Réponse 1 Exercice 3 : 1. La classe Article : public class Article { protected int code; protected String nom; protected double prixHT; private static int comp; public Article(String nom, double prixHT) { this.code = ++comp; this.nom = nom; this.prixHT = prixHT; } public double prixTransport() { return prixHT * 0.05; // 5% du Prix Hors Taxes de l'article } public String toString() { return this.code + " " + this.nom; } } 2. Instance de la classe Article : Article a = new Article("TV", 9000.00); 3. La méthode toString() permet de donner un aperçut d'un objet instancié. Par exemple : affichage de la valeur des propriétés. Article a = new Article("TV", 9000.00); System.out.println(a); //équivalent à System.out.println(a.toString()); 4. Les deux constructeurs de la classe Fragile : public Fragile(String nom, double prixHT) { super(nom, prixHT); } public Fragile(String emballage, String nom, double prixHT) { super(nom, prixHT); this.emballage = emballage; } 5. La méthode prixTransport de la classe Fragile : public double prixTransport() { return 2 * super.prixTransport(); } 6. Oui, c'est le polymorphisme d'héritage. Le prix sera : 700.00 7. La relation entre Article et Magasin est une relation d'association avec navigation dans un seul sens. 8. On doit ajouter une liste d'articles dans la classe Magasin : public class Magasin { private List<Article> articles; } 9. Les méthodes add et contains : public class Magasin { private List<Article> articles; public Magasin() { articles = new ArrayList<>(); } public void add(Article a) { articles.add(a); } public boolean contains(Article a) { for (Article art : articles) { if (art.getCode() == a.getCode()) { return true; } } return false; } } //Source : www.exelib.net Exercice I : On considère le modèle suivant : ETUDIANT (NEtudiant, Nom, Prénom) MATIERE (CodeMat, LibelléMat, CoeffMat) EVALUER (NEtudiant, CodeMat, Date, Note) Question : 1) Créer la base de données avec les clés primaire et étrangère. 2) Ajouter la colonne date de naissance dans Etudiant : DateN. 3) Ajouter la colonne Groupe : Groupe not null. 4) Ajouter la contrainte unique pour les deux attributs (NEtudiant, CodeMat). 5) Ajouter une colonne Age calculé automatiquement à partir de DateN. 6) Ajouter une contrainte, valeur entre 0 et 20 pour la note. 7) Créer une vue qui affiche la liste des étudiants (Groupe, Nom, Prénom) et leur moyenne Général Solution Code: USE Master Go Drop DataBase S5Ex1 Go Create DataBase S5Ex1 Go USE S5Ex1 Go Create table ETUDIANT (NEtudiant int identity primary key, Nom varchar(30), Prénom varchar(30)) Create table MATIERE (CodeMat int identity primary key, LibelleMat varchar(30), CoeffMat int) Create table EVALUER (NEtudiant int foreign key references ETUDIANT (NEtudiant) on DELETE CASCADE, CodeMat int foreign key references MATIERE (CodeMat) on DELETE CASCADE, Date smalldatetime, Note decimal(4,2)) Go insert into ETUDIANT values('Ali','P-Ali') insert into ETUDIANT values('Ahmed','P-Ahmed') insert into ETUDIANT values('Imane','P-Imane') insert into ETUDIANT values('Amine','P-Amine') Select * from ETUDIANT Go AUTRES create database STAGIAIRES go use STAGIAIRES create table Stagiaire(Code_Stgr int primary key,Nom_Stgr varchar(30),Prenom_Stgr varchar(30),Date_Naissance date,Tel_Fixe varchar(30),Tel_Portable varchar(30),E_Mail uploads/S4/ deep.pdf
Documents similaires
-
12
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 30, 2022
- Catégorie Law / Droit
- Langue French
- Taille du fichier 0.0920MB