Niveau de difficulté : intermédiaire
Prédisez la sortie des programmes Java suivants.
chaîne d'entrée Java
Programme 1 : Chaînage de constructeurs
Java
class First { public First() { System.out.println('a'); } } class Second extends First { public Second() { System.out.println('b'); } } class Third extends Second { public Third() { System.out.println('c'); } } public class MainClass { public static void main(String[] args) { Third c = new Third(); } }
Sortir
a b c
Explication: Lorsqu'un 'Troisième' objet est créé avant d'appeler le constructeur par défaut de Troisième class le constructeur par défaut de la super classe, c'est-à-dire Deuxième la classe est appelée, puis à nouveau avant le constructeur par défaut du constructeur par défaut de la super classe D'abord la classe est appelée. Et donc la sortie est dans l’ordre a b c.
Programme 2 : Initialisation des variables et exécution du constructeur
Javaclass First { int i = 10; public First(int j) { System.out.println(i); this.i = j * 10; } } class Second extends First { public Second(int j) { super(j); System.out.println(i); this.i = j * 20; } } public class MainClass { public static void main(String[] args) { Second n = new Second(20); System.out.println(n.i); } }
Sortir
10 200 400
Explication: Puisque dans la classe 'Deuxième', elle n'a pas son propre 'i', la variable est héritée de la super classe. De plus, le constructeur de parent est appelé lorsque nous créons un objet de Deuxième.
Programme 3 : instanceof avec itérateurs
Javaimport java.util.*; class Geeks { public static void main (String[] args) { Object i = new ArrayList().iterator(); System.out.print((i instanceof List) + ' '); System.out.print((i instanceof Iterator) + ' '); System.out.print(i instanceof ListIterator); } }
Sortir
false true false
Explication: Le itérateur() La méthode renvoie un itérateur sur les éléments de la liste dans le bon ordre, elle ne renvoie pas d'objet List ou ListIterator. UN ListItérateur peut être obtenu en appelant la méthode listIterator.
comment connaître la taille d'affichage
Programme 4 : exception de démarrage et d'arrêt du thread
Javaclass ThreadEx extends Thread { public void run() { System.out.print('Hello...'); } public static void main(String args[]) { ThreadEx T1 = new ThreadEx(); T1.start(); T1.stop(); T1.start(); } }
Sortir:
Run Time Exception
Explication: Un fil de discussion ne peut pas être démarré plus d'une fois. Appel commencer() méthode sur un thread arrêté provoque IllegalThreadStateException .