Razina težine: Srednja
Predvidite izlaz sljedećih Java programa.
if else if java
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
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); } }
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
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); } }
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.
sortirana tuple python
Program 4: Iznimka pokretanja i zaustavljanja niti
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(); } }
Izlaz:
Run Time Exception
Obrazloženje: Nit se ne može pokrenuti više od jednom. zovem start() metoda na zaustavljenoj niti uzrokuje IllegalThreadStateException .