Vanskelighetsgrad: Middels
Forutsi produksjonen av følgende Java-programmer.
forskjell på is og snø
Program 1: Konstruktørkjeding
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(); } }
Produksjon
a b c
Forklaring: Når et 'tredje' objekt opprettes før standardkonstruktøren til Tredje klasse standardkonstruktøren til superklassen, dvs. Sekund klasse kalles og så igjen før standardkonstruktøren til superklassens standardkonstruktør av Først klasse kalles. Og derfor er utgangen i rekkefølgen a b c.
Program 2: Variabel initialisering og konstruktørutførelse
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); } }
Produksjon
10 200 400
Forklaring: Siden den i 'Andre'-klassen ikke har sin egen 'i', er variabelen arvet fra superklassen. Også konstruktøren av overordnet kalles når vi lager et objekt av Sekund.
Program 3: forekomst av med Iteratorer
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); } }
Produksjon
false true false
Forklaring: De iterator() metoden returnerer en iterator over elementene i listen i riktig rekkefølge, den returnerer ikke en List eller et ListIterator-objekt. EN ListIterator kan fås ved å påkalle listIterator-metoden.
få matriselengde i c
Program 4: Unntak for trådstart og stopp
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(); } }
Produksjon:
Run Time Exception
Forklaring: En tråd kan ikke startes mer enn én gang. Ringer start() metode på en stoppet tråd årsaker IllegalThreadStateException .