Nivel de dificultad: Intermedio
Predecir el resultado de los siguientes programas Java.
vb y vb neto
Programa 1: Encadenamiento de constructores
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(); } }
Producción
a b c
Explicación: Cuando se crea un 'tercer' objeto antes de llamar al constructor predeterminado de Tercero class el constructor predeterminado de la superclase, es decir Segundo se llama a la clase y luego nuevamente antes del constructor predeterminado de la superclase constructor predeterminado de Primero se llama clase. Y por tanto la salida es del orden a b c.
Programa 2: Inicialización de variables y ejecución 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); } }
Producción
10 200 400
Explicación: Dado que en la clase 'Segunda' no tiene su propia 'i', la variable se hereda de la superclase. También se llama al constructor de padre cuando creamos un objeto de Segundo.
Programa 3: instancia de con iteradores
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); } }
Producción
false true false
Explicación: El iterador() El método devuelve un iterador sobre los elementos de la lista en la secuencia adecuada, no devuelve una Lista o un objeto ListIterator. A ListaIterador se puede obtener invocando el método listIterator.
¿Qué es el escritorio ini?
Programa 4: Excepción de inicio y detención de subprocesos
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(); } }
Producción:
Run Time Exception
Explicación: Un hilo no se puede iniciar más de una vez. Vocación comenzar() método en un hilo detenido causas Excepción de estado de hilo ilegal .