QCM En JAVA – Partie 2

Question 1 sur 10

La commande java


  1. prend en entrée un fichier .java afin de l'interpréter
  2. prend en entrée un fichier .class afin de l'interpréter
  3. exécute la méthode main de la classe java contenue dans le fichier .class qui est en entrée de la commande
2 , 3

prend en entrée un fichier .class afin de l'interpréter

exécute la méthode main de la classe java contenue dans le fichier .class qui est en entrée de la commande

Question 2 sur 10

Les méthodes public de la classe A


  1. peuvent utiliser directement les attributs privés de la classe A
  2. peuvent utiliser directement les attributs privés d'une autre classe B
  3. peuvent utiliser directement les attributs publiques de la classe A
1 , 3

Les méthodes publiques de la classe A peuvent utiliser directement les attributs privés de la classe A".

peuvent utiliser directement les attributs publiques de la classe A

 

Question 3 sur 10

Soit le code JAVA suivant :

public class Exemple 
{ 
????? int var_x; 
 public static void main(String a_args[]) 
 { 
 var_x = Integer.parseInt(a_args[0]); 
 System.out.println("X=" + var_x); 
 } 
} 

On exécute ce programme avec la commande : java Exemple 123 Pour que ce code soit correct, il faut remplacer ????? par :


  1. private
  2. public
  3. static
3

Pour que ce code soit correct, il faut remplacer "?????" par "static". En effet, la méthode main est une méthode statique, elle peut donc accéder directement aux attributs statiques de la classe Exemple. Par conséquent, la réponse est C.

Question 4 sur 10

Dans la programmation objet, en JAVA, le rôle du constructeur d'une classe est de :


  1. créer un objet en mémoire de la JVM et d'initialiser les attributs
  2. créer une classe en mémoire de la JVM
1

Le rôle du constructeur d'une classe en programmation orientée objet avec Java est de créer un objet en mémoire de la JVM et d'initialiser les attributs de cet objet. En d'autres termes, le constructeur est une méthode spéciale qui est appelée lors de la création d'une instance d'une classe. Il est utilisé pour effectuer les tâches d'initialisation nécessaires sur les données membres de l'objet, telles que l'affectation de valeurs initiales à des variables d'instance ou l'initialisation de connexions à des bases de données ou à d'autres ressources externes.

Ainsi, la réponse est 1 : "créer un objet en mémoire de la JVM et d'initialiser les attributs".

Question 5 sur 10

Ce code est correct:

ArrayList<String> tab = new ArrayList<String>(); 
tab.array[0] = "LAFONT"; 
tab.array[1] = "DUPONT"; 
tab.size = 2; 

  1. OUI
  2. NON
2

Non, ce code n'est pas correct.

L'erreur dans ce code est que l'objet ArrayList ne possède pas d'attribut "array" ou "size". Pour ajouter des éléments à un objet ArrayList, il est nécessaire d'utiliser la méthode "add" de l'objet.

Voici un exemple de code corrigé :

ArrayList<String> tab = new ArrayList<String>(); 
tab.add("LAFONT"); 
tab.add("DUPONT"); 
int size = tab.size();

 

Question 6 sur 10

Soit le code suivant :

String str1[] = new StringTokenizer("AA;BB;CC",";"); 
for(String s: str1) 
 System.out.println(s);

Ce code :


  1. affiche : AA BB CC
  2. n'affiche rien
  3. ne se compile pas correctement
3

ne se compile pas correctement

Question 7 sur 10

Soit la classe suivante :

public class A{ 
 private ArrayList<String> liste; 
 public A(){ 
 ArrayList<String> liste = new ArrayList<String>(); 
 } 
 public void add(String s){liste.add(s);} 
}

Un programme réalise le code suivant:

A exemple = new A();

exemple.add("LAFONT");

Le code du programme s'exécute normalement


 

  1. OUI
  2. NON
2

 

Dans le constructeur de la classe A, une nouvelle instance de ArrayList est créée et stockée dans une variable locale nommée liste, mais cette variable locale est différente de l'attribut de la classe liste qui n'est jamais initialisé. Ainsi, lorsque la méthode add est appelée sur l'instance exemple, l'attribut liste est null et cela provoque une exception de type NullPointerException.

Question 8 sur 10

Soit le code suivant :

int tab_int[] = new int[10]; 
[...] 
for(int i=0; i< A ;i++) 
 Terminal.ecrireIntln( B );

Ce code affiche tous les éléments du tableau tab_int. A et B peuvent être remplacés par :


  1. A -> tab_int.length B -> tab_int[i]
  2. A -> tab_int.size() B -> tab_int.get(i)
1

A -> tab_int.length B -> tab_int[i]

Question 9 sur 10

Soit le code JAVA suivant :

public class Bidon { 
 public int valeur; 
 public Bidon(int v){valeur=v;} 
} 
public class Exemple{ 
 public static void main(String[] args){ 
 Bidon obj = new Bidon(12); 
 traitement(obj,100) 
 System.out.println(obj.valeur); 
 } 
 static void traitement(Bidon bid,int v){ 
 bid.valeur=v; 
} 

L'exécutiuon de ce programme est :


  1. affiche la valeur 100
  2. affiche la valeur 12
1

L'exécution de ce programme affiche la valeur 100.

Lors de l'appel à la méthode traitement(obj,100), l'objet obj est passé par référence, ce qui signifie que la méthode peut modifier l'objet en question. Dans la méthode traitement, la valeur de l'attribut valeur de l'objet bid est modifiée à 100. Ainsi, lorsque l'on affiche la valeur de l'attribut valeur de obj après l'appel de la méthode traitement, on obtient 100.

Question 10 sur 10

Soit le code JAVA suivant :

public class C { 
 private int attribut; 
 public C(){attribut=10;} 
 public static void main(String[] args) 
 { 
 C objet = new C(); 
 objet.attribut = Integer.parseInt(args[0]); // LIGNE 7 
 } 
} 

Le code de la LIGNE 7 est correct


  1. OUI
  2. NON
2

Le code de la LIGNE 7 n'est pas correct. L'attribut attribut de la classe C est privé, donc il ne peut pas être directement accessible en dehors de la classe. Pour y accéder, il faudrait créer une méthode publique qui permet de modifier sa valeur, par exemple :

public void setAttribut(int valeur) {
    attribut = valeur;
}

et l'appeler depuis la méthode main :

C objet = new C(); 
objet.setAttribut(Integer.parseInt(args[0]));

 

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.

OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET OUDEV.NET