Nehézségi szint: Közepes
Jósolja meg a következő Java programok kimenetét.
string összehasonlítani a java-val
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
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); } }
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
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); } }
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.
kapcsolatok java-ban
4. program: Szálindítás és leállítás kivétel
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(); } }
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 .