Izlaz Java programa | Set 6
Razina težine: Srednja
Predvidite izlaz sljedećih Java programa.
Program 1: Ulančavanje konstruktora
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 (); } }
Izlaz
a b c
Obrazloženje: Kada se stvori 'Treći' objekt prije pozivanja zadanog konstruktora Treći klasa zadani konstruktor super klase tj. Drugi poziva se klasa i zatim ponovno prije zadanog konstruktora super klase zadani konstruktor od Prvi klasa se zove. I stoga je izlaz redoslijedom a b c.
Program 2: Inicijalizacija varijable i izvođenje konstruktora
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 ); } }
Izlaz
10 200 400
Obrazloženje: Budući da u 'Drugoj' klasi nema svoje 'i', varijabla je naslijeđena iz super klase. Također, konstruktor roditelja se poziva kada kreiramo objekt od Drugi.
Program 3: instanceof s iteratorima
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 ); } }
Izlaz
false true false
Obrazloženje: The iterator() metoda vraća iterator preko elemenata na popisu u ispravnom nizu, ne vraća objekt List ili ListIterator. A ListIterator može se dobiti pozivanjem metode listIterator.
Program 4: Iznimka pokretanja i zaustavljanja niti
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 (); } }
Izlaz:
Run Time Exception
Obrazloženje: Nit se ne može pokrenuti više od jednom. zovem start() metoda na zaustavljenoj niti uzrokuje IllegalThreadStateException .