Težavnostna stopnja: srednja
Predvidi izhod naslednjih programov Java.
ključ za obdobje
Program 1: Veriženje konstruktorjev
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(); } }
Izhod
a b c
Pojasnilo: Ko je "tretji" objekt ustvarjen pred klicem privzetega konstruktorja Tretjič razred privzeti konstruktor nadrazreda, tj. drugič razred in nato znova pred privzetim konstruktorjem privzetega konstruktorja nadrazreda najprej razred se imenuje. In zato je rezultat v vrstnem redu a b c.
Program 2: Inicializacija spremenljivke in izvedba konstruktorja
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); } }
Izhod
10 200 400
Pojasnilo: Ker v 'drugem' razredu nima svojega 'i', je spremenljivka podedovana iz nadrazreda. Tudi konstruktor nadrejenega se pokliče, ko ustvarimo predmet drugič
Program 3: instanceof z iteratorji
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); } }
Izhod
false true false
Pojasnilo: The iterator() metoda vrne iterator nad elementi na seznamu v pravilnem zaporedju, ne vrne predmeta List ali ListIterator. A ListIterator je mogoče pridobiti s klicem metode listIterator.
kako preveriti blokirane številke na androidu
Program 4: Začetek in zaustavitev 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(); } }
Izhod:
Run Time Exception
Pojasnilo: Niti ni mogoče začeti več kot enkrat. Klicanje začetek() metoda na ustavljeni niti povzroča IllegalThreadStateException .