Grau de dificultat: Mitjà
Prediu la sortida dels següents programes Java.
algorisme per a bfs
Programa 1: Constructor Chaining
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(); } }
Sortida
a b c
Explicació: Quan es crea un objecte "Tercer" abans de cridar al constructor predeterminat de Tercer class el constructor predeterminat de la superclasse, és a dir. Segon s'anomena classe i després de nou abans del constructor predeterminat de la superclasse del constructor predeterminat de Primer s'anomena classe. I, per tant, la sortida és de l'ordre a b c.
Programa 2: Inicialització de variables i execució del constructor
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); } }
Sortida
10 200 400
Explicació: Com que a la classe "Segona" no té la seva pròpia "i", la variable s'hereta de la superclasse. També es diu el constructor del pare quan creem un objecte de Segon.
Programa 3: instància d'iteradors
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); } }
Sortida
false true false
Explicació: El iterador() El mètode retorna un iterador sobre els elements de la llista en la seqüència adequada, no retorna un objecte List o ListIterator. A ListIterator es pot obtenir invocant el mètode listIterator.
estructura de dades
Programa 4: Excepció d'inici i parada del fil
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(); } }
Sortida:
Run Time Exception
Explicació: No es pot iniciar un fil més d'una vegada. Trucant començar () mètode en un fil aturat provoca IllegalThreadStateException .