QCM du TP7-8

Auteur(s) : Denis Conan et Christian Bac
Date : Octobre 2011
Module : CSC4002
Instructions pour le QCM :Pour chacune des questions, plusieurs réponses peuvent être correctes, vous pouvez donc cocher plusieurs cases !
Les questions sont de trois niveaux de difficultés. Les niveaux « intermédiaire » et « difficile » sont précédés des signes « * » et « ** », respectivement.

  1. (1) L'affirmation suivante est-elle correcte ? Les exceptions constituent un mécanisme de gestion des erreurs séparément du flot d'exécution normal.
  2. OUI
    NON

  3. (2) Étant donné les classes décrites ci-dessous, sélectionnez les réponses correctes.
    public class E extends Exception { public E(String why) {super(why);}}
    public class X {
        public static void m() throw E {
            throws new E("message");
        }
    }
    public class M {
        public static void main(String[] args) throws E {
            X.m();
        }
    }
    
  4. La classe E compile sans erreur.
    La classe X compile sans erreur.
    La classe X compile avec une erreur.
    La classe X compile avec deux erreurs.

  5. (3) Étant donné les classes décrites ci-dessous, sélectionnez les réponses correctes.
    public class E extends Exception {public E() {super();}}
    public class F extends Exception {public F() {super();}}
    public class A {
        public static void m(boolean b) throws E, F {
            if(b) throw new E();
            throw new F();
        }
    }
    public class M {
        public static void main(String[] args) throws E {
            try {
                A.m(true);
            } catch (F e) {e.printStackTrace();}
        }
    }
    
  6. La classe A compile sans erreur.
    La méthode main de la classe M attrape une exception de classe F et fait suivre une exception de type E.

  7. (4) Sélectionnez les réponses correctes.
  8. La déclaration d'interface suivante compile sans erreur :
    public interface I {public void m() {}}
    
    La déclaration d'interface suivante compile sans erreur :
    public interface I {public void m();}
    
    Les déclarations d'interface et de classes suivantes compilent sans erreur :
    public interface I {public void m();}
    public class C implements I {}
    

  9. (5) Sélectionnez les réponses correctes.
  10. La déclaration suivante compile sans erreur:
    public abstract interface I {}
    
    La déclaration d'interface suivante compile sans erreur :
    public interface I {public abstract void m();}
    

  11. (6) Sélectionnez les réponses correctes.
  12. La classe « Vector<String> » est sérialisable.
    La classe C déclarée comme suit est sérialisable :
    public class C {private String a;}
    
    .
    « A » étant une classe sérialisable, la classe B contenant uniquement une table de hachage « Hashtable<String,A> » et implémentant l'interface java.io.Serializable, est sérialisable.

  13. (7) Sélectionnez les réponses correctes.
  14. Un fichier avec l'extension jar est une archive Java contenant des classes.
    Pour être utilisable pendant l'exécution, une archive Java contient des fichiers de code source.
    Pour être utilisable pendant l'exécution, une archive Java doit être ajoutée au CLASSPATH.

Afficher les réponses avec le calcul des résultats