0% ont trouvé ce document utile (0 vote)
11 vues3 pages

Questions et exercices en POO Java

Ce document présente un examen de programmation orientée objet pour des étudiants en informatique, incluant des questions théoriques et des exercices pratiques. Les questions portent sur des concepts clés comme l'état d'un objet, les constructeurs, et le clonage, tandis que les exercices impliquent la création de classes pour un personnage et une arme. Les étudiants doivent démontrer leur compréhension des erreurs de code et des principes de la programmation en Java.

Transféré par

veo3abdohak47
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
11 vues3 pages

Questions et exercices en POO Java

Ce document présente un examen de programmation orientée objet pour des étudiants en informatique, incluant des questions théoriques et des exercices pratiques. Les questions portent sur des concepts clés comme l'état d'un objet, les constructeurs, et le clonage, tandis que les exercices impliquent la création de classes pour un personnage et une arme. Les étudiants doivent démontrer leur compréhension des erreurs de code et des principes de la programmation en Java.

Transféré par

veo3abdohak47
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université d’Ain Témouchent - Belhadj Bouchaib

Faculté des Sciences et de la Technologie


Département Mathématique et Informatique

2eme Année Informatique Programmation Orientée Objet Année universitaire 2023/2024

Questions de cours (6 pts)


o Qu’est-ce que l’état d’un objet ? ........................................................................... 1 pt
o A quel moment s’exécute le constructeur d’une classe ? ..................................... 1 pt
o En java, le mot "final" peut être appliqué à une classe ainsi qu'à une méthode. Quel est son rôle
dans chaque cas ? .................................................................................................. 2 pts
o Expliquer le clonage des objets et donner ses avantages. ..................................... 2 pts
Exercice 1 (4 pts)
1) La commande [Link]([Link]()) affiche 0 car dans le constructeur de la classe 1 pts
« Test », l’affectation est inversée. Il affecte l’attribut au paramètre ; la correction est comme suit :
Existant Correction
public Test(int v) { public Test(int v) {
v = value ; value = v ;
} }

2) Explication des deux erreurs :


a- Dans "Fichier1", la commande <Test2 s = new Test2();> génère une erreur car le 0.5 pt
constructeur de la classe Test2 exige un seul paramètre, tandis que cette commande
ne fournit aucun paramètre.

Solution : <Test2 s = new Test2(5);> 0.5 pt

b – L’attribut « value » dans la classe Test est déclaré privé. Alors, à l’extérieur de
0.5 pt
cette classe, cet attribut ne peut pas être manipulé directement.

Solution : dans le constructeur de Test2 mettre super(v) au lieu de value = v ; 0.5 pt

3) Aucune forme de polymorphisme n’existe dans cette classe. 1 pt


Université d’Ain Témouchent - Belhadj Bouchaib
Faculté des Sciences et de la Technologie
Département Mathématique et Informatique

2eme Année Informatique Programmation Orientée Objet Année universitaire 2023/2024

Exercice 2 (10 pts)

Personnage Arme
package examen23_24; package examen23_24;

public class Personnage { import [Link];


private String name; 1.5 pt
private int x, y, pointVie; (0.25/attribut) public class Arme {
private double precision; private int puissance, nbr_balles; 0.5 pt
private Arme A; (0.25/attribut)

public Personnage(String n, int x, int y){ public Arme(int puis){ Signature : 0.25
name = n; puissance = puis; Corp : 0.25
Signature : 0.5 pt
this.x = x; nbr_balles = 200;
this.y = y;
precision = 20; Corp : 1.25 pt }
pointVie = 50; (0.25/affectation)
} public int getNbrBalles(){
return nbr_balles; 0.5 pt
public void lancer(){ }
if (A != null){
if ([Link]()) { public boolean tirer(){
precision = precision + 1.5; boolean value = false;
} Random randomNumbers = new Random();
else { String msg;
precision = precision - 1; if (nbr_balles > 0){
} value = [Link]();
Corp : 1.5 pt if (value) msg = "touchée";
if (precision < 0){ (0.25/test A null, else msg = "ratée";
precision = 0; 0.75/precision, [Link]("tirer, cible " + msg);
} 0.25/max precis, nbr_balles = nbr_balles - 1;
else { 0.25/min precis) }
if (precision > 100) { Corp : 0.75
precision = 100; return value; Test nbr_balles 0.25
} } Random 0.25
} Décrément nbr_balles 0.25
}
} public void remplir(){
nbr_balles = 200; 0.25 pt
public void setArme(Arme e){ }
A = e;
} Signature : 0.25
Corp : 0.25
public Arme getArme(){ }
return A;
}

public void charger(){


if (A != null) { 0.25 pt
[Link]();
}
}
Université d’Ain Témouchent - Belhadj Bouchaib
Faculté des Sciences et de la Technologie
Département Mathématique et Informatique

2eme Année Informatique Programmation Orientée Objet Année universitaire 2023/2024

package examen23_24;

public class Examen23_24 {

public static void main(String[] args) {


Personnage pers1 = new Personnage("Momo", 5, 8); 0.5 pt

Arme arm1 = new Arme(10); 0.5 pt

[Link](arm1); 0.25 pt

[Link](); 0.25 pt

[Link]([Link]().getNbrBalles()); 0.5 pt
}

Vous aimerez peut-être aussi