Test2
1) Trouver l'erreur dans ce programme
class Animaux2 { public static void main(String[] args) { Canari titi = new Canari(3); titi.vieillir(); titi.vieillir(2); titi.crier(); } } class Animal { boolean vivant; int âge; int âgeMaxi = 10; Animal (int a) { âge = a; vivant = true; System.out.println("Un animal de " + a + " an(s) vient d'être créé"); } void vieillir() { vieillir(1); } void vieillir(int a) { âge += a; afficheAge(); if (âge > âgeMaxi) { mourrir(); } } void afficheAge() { System.out.println("C'est l'anniversaire de cet animal."); System.out.println("Il a maintenant " + âge + " an(s)"); } void mourrir() { vivant = false; System.out.println("Cet animal est mort"); } void crier() { } } class Canari extends Animal { Canari(int a) { âge = a + 2; vivant = true; System.out.println("Un canari de " + âge + " an(s) vient d'être créé"); } void crier() { System.out.println("Cui-cui !"); } }
La raison de ce problème vient de ce que la classe Canari ne possède pas de constructeur. La raison de ce problème vient de ce que le constructeur de la classe Animal n'hérite d'aucune autre classe. La raison de ce problème vient de ce que le constructeur de la classe Canari ne commence ni par this ni par super.
2) Donner le rèsultat de ce programme suivant
class Incr { public static void main(String[] args) { int x = 5; int y = x++; System.out.println("x = " + x); System.out.println("y = " + y); y = ++x; System.out.println("x = " + x); System.out.println("y = " + y); } }
x = 6 , y = 6 , x = 7 , y = 7 x = 6 , y = 5 , x = 7 , y = 7 x = 6 , y = 5 , x = 7 , y = 6
3) Donner le rèsultat de ce programme suivant
class Decr { public static void main(String[] args) { int x = 5; System.out.println(x); System.out.println(x--); System.out.println(x); System.out.println(--x); System.out.println(x); } }
5 , 5 , 4 , 3 , 4 5 , 5 , 4 , 4 , 3 5 , 5 , 4 , 3 , 5
4) Donner le rèsultat de ce programme suivant
class Egal1 { public static void main(String[] args) { Integer a = new Integer(100); Integer b = new Integer(100); System.out.println(a == b); } }
false true
5) Que faut-il modifier dnas le code pour compiler le programme suivant?
class Decalage { public static void main(String[] args) { short a = 5; short b = a << 1; }
Il faut donc un casting explicite pour affecter le résultat à un short Il faut donc un casting explicite pour affecter le résultat à un float Il faut donc un casting explicite pour affecter le résultat à un int
Correction du Test2