A Java program kimenete | 6. készlet
Nehézségi szint: Közepes
Jósolja meg a következő Java programok kimenetét.
1. program: 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 (); } }
Kimenet
a b c
Magyarázat: Amikor egy „Harmadik” objektum jön létre, mielőtt meghívná az alapértelmezett konstruktort Harmadik class a szuperosztály alapértelmezett konstruktora, azaz. Második osztály kerül meghívásra, majd ismét a szuper osztály alapértelmezett konstruktora előtt Első osztályt hívják. Ezért a kimenet a b c sorrendben van.
2. program: Változó inicializálása és konstruktor végrehajtása
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 ); } }
Kimenet
10 200 400
Magyarázat: Mivel a 'Második' osztályban nincs saját 'i', a változó a szuperosztályból öröklődik. A szülő konstruktora is meghívásra kerül, amikor egy objektumot hozunk létre Második.
3. program: instanceof Iterátorokkal
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 ); } }
Kimenet
false true false
Magyarázat: A iterátor() A metódus egy iterátort ad vissza a lista elemei felett a megfelelő sorrendben, nem ad vissza List vagy ListIterator objektumot. A ListIterator listIterator metódus meghívásával kaphatjuk meg.
4. program: Szálindítás és leállítás kivétel
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 (); } }
Kimenet:
Run Time Exception
Magyarázat: Egy szál nem indítható el többször. Hívás indul() metódus egy leállított szálon okozza IllegalThreadStateException .