Salida del programa Java | Conjunto 6

Nivel de dificultad: Intermedio

Predecir el resultado de los siguientes programas Java.

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

Java
   class   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

Java
   import     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.


Programa 4: Excepción de inicio y detención de subprocesos

Java
   class   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 .