samedi 19 septembre 2009

Exercice Certification SCJP : les bases : les mots clés

Les mots clés reviennent souvent à l'examen. Celui-ci va essayer de vous induire en erreur avec par exemple des mots clés provenant du C++. Il y a aussi d'autres pièges plus vicieux.

Ces exercices vont vous familiariser avec les pièges les plus fréquents :

Exercise 1 :

Given the following :

public class Test {

public static void main(String [] args) {

System.out.println("Zest!");

}


public void assert {

System.out.println("Helllo");

}

}


What is the result ? (choose one)


A Zest!

B Helllo

C Compilation fails

D An exception is thrown at runtime



Exercice 2 :

Given the following :


public class Test {

public static void main(String [] args) {

System.out.println("Zest!");

int true = 1;

System.out.println("true : " + true);

}

}

What is the result ? (choose one)


A Zest!

B Zest true: 1

C Compilation fails

D An exception is thrown at runtime


Exercice 3 :


public class Test {
public static void main(String [] args) {

System.out.println("Zest!");

transient int value = 10;

System.out.println("true : " + true);

}

}

What is the result ? (choose one)


A Zest!

B Zest true: 1

C Compilation fails

D An exception is thrown at runtime


Solution :

Exercice 1 :

La compilation va échouer car assert est un mot clé réservé. Attention, les questions de ce genre reviennent souvent !

The compilation will fail because a method can't have the name of a keyword.
Be carreful at this sort of question. It's often in test and very easy to miss it

Exercice 2 :

La compilation va échouer car on ne peut pas nommer une variable avec le nom d'un mot clé.

Exercice 3 :

La compilation va échouer. Le mot clé transient est lié à la sérialisation des classe java.
Il s'utilise comme ceci :
// la classe que nous allons sérialiser
class Writeable implements java.io.Serializable {
// entier transient
public transient int var1 = 4;
// entier normal
public int var2 = 19;
}