Uitvoer van Java-programma | Set 6

Moeilijkheidsgraad: Gemiddeld

Voorspel de uitvoer van de volgende Java-programma's.

Programma 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  ();      }   }   

Uitvoer
a b c  

Uitleg: Wanneer een 'Third'-object wordt gemaakt voordat de standaardconstructor van wordt aangeroepen Derde class de standaardconstructor van superklasse, d.w.z. Seconde klasse wordt aangeroepen en dan opnieuw vóór de standaardconstructor van de standaardconstructor van de superklasse Eerst klasse wordt genoemd. En dus is de uitvoer in de volgorde a b c.


Programma 2: Initialisatie van variabelen en uitvoering van 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  );      }   }   

Uitvoer
10 200 400  

Uitleg: Omdat deze in de 'Tweede' klasse geen eigen 'i' heeft, wordt de variabele geërfd van de superklasse. Ook wordt de constructor van parent aangeroepen als we een object van maken Seconde.


Programma 3: instanceof met Iterators

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  );         }      }   

Uitvoer
false true false 

Uitleg: De iterator() method retourneert een iterator over de elementen in de lijst in de juiste volgorde. Het retourneert geen List- of ListIterator-object. A LijstIterator kan worden verkregen door de listIterator-methode aan te roepen.


Programma 4: Uitzondering voor draadstart en -stop

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  ();      }   }   

Uitgang:

 Run Time Exception   

Uitleg: Een thread kan niet vaker dan één keer worden gestart. Roeping begin() methode voor een gestopte thread veroorzaakt IllegalThreadStateException .