:: Enseignements :: ESIPE :: E3INFO :: 2012-2013 :: Programmation Objet avec Java ::
![[LOGO]](http://igm.univ-mlv.fr/ens/resources/mlv.png) |
String, StringBuilder, égalité.
|
Exercice 1 - Egalité, Redéfinition, Polymorphisme, Liaison tardive (late binding).
-
Qu'affiche le code suivant :
String s1="toto";
String s2=s1;
String s3=new String(s1);
System.out.println(s1==s2);
System.out.println(s1==s3);
Expliquer
-
Quelle est la méthode à utiliser pour
tester le contenu des chaînes de caractères ?
-
Qu'affiche le code suivant :
String s1="toto";
String s2="toto";
System.out.println(s1==s2);
Expliquer.
-
Expliquer pourquoi il est important que java.lang.String
soit non mutable.
-
Qu'affiche le code suivant :
String s="hello";
s.toUpperCase();
System.out.println(s);
Expliquer.
Exercice 2 - En morse. Stop.
Ecrire une classe
fr.umlv.morse.Morse qui permet lors de
son exécution d'afficher les chaînes de caractères
passées en argument séparées par des
"Stop.".
$ java Morse ceci est drole
ceci Stop. est Stop. drole Stop.
-
Utiliser dans un premier temps,
l'opérateur + qui permet la concaténation
de chaînes de caractères.
-
A quoi sert un objet de la classe java.lang.StringBuilder
Pouquoi sa méthode append(String) renvoie un objet de
type StringBuilder ?
-
Ré-écire la classe fr.umlv.morse.Morse en utilisant
un StringBuilder.
Quel est l'avantage par rapport à la solution précédente ?
-
Recopier le code suivant dans une classe de Test :
public static void main(String[] args) {
String first=args[0];
String second=args[1];
String last=args[2];
System.out.println(first+' '+second+' '+last);
}
Compiler le code puis utiliser la commande javap
pour afficher le bytecode généré
javap -c Test
Que pouvez vous en déduire ?
Dans quel cas doit-on utiliser StringBuilder.append()
plutôt que le + ?
Exercice 3 - Redéfinition
-
Quelles sont les valeurs affichées par le main de la classe Test ?
Expliquer pourquoi.
-
En se plaçant dans B, à combien de méthodes x une méthode de
B a t-elle accès ?
S'il y en a plusieurs, donner pour chacune un moyen d'accès.
-
Mêmes questions, mais en se plaçant dans Test.
-
Que se passe t il si les x() sont des méthodes statiques.
-
Que se passe t il si les x sont des champs.
Exercice 4 - Surcharge, redéfinition, appel de méthode
Dans les exemples de classes suivantes :
-
Dire où se trouvent les erreurs de compilation.
-
Expliquer ces erreurs.
-
Retirer les méthodes qui provoquent ces erreurs.
-
Indiquer où se trouvent les surcharges et les redéfinitions.
-
Indiquer les méthodes appellées.
© Université de Marne-la-Vallée