Úroveň obtiažnosti: Stredne pokročilá
Predpovedajte výstup nasledujúcich programov Java.
prenosová rýchlosť v arduino
Program 1: Reťazenie konštruktorov
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(); } }
Výstup
a b c
Vysvetlenie: Keď sa vytvorí „tretí“ objekt pred volaním predvoleného konštruktora Po tretie class predvolený konštruktor supertriedy t.j. Po druhé trieda sa volá a potom znova pred predvoleným konštruktorom supertriedy predvoleným konštruktorom Po prvé trieda sa volá. And hence the output is in the order a b c.
Program 2: Inicializácia premenných a spustenie konštruktora
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); } }
Výstup
10 200 400
Vysvetlenie: Keďže v triede 'Second' nemá svoje vlastné 'i', premenná sa zdedí z nadtriedy. Keď vytvárame objekt, volá sa aj konštruktor rodiča Po druhé.
Program 3: instanceof s iterátormi
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); } }
Výstup
false true false
Vysvetlenie: The iterátor() metóda vracia iterátor nad prvkami v zozname v správnom poradí, nevracia objekt List alebo ListIterator. A ListIterator možno získať vyvolaním metódy listIterator.
pomocou internetu
Program 4: Výnimka spustenia a zastavenia vlákna
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(); } }
výstup:
Run Time Exception
Vysvetlenie: A thread cannot be started more than once. Volanie začať () spôsob na zastavenom vlákne spôsobuje IllegalThreadStateException .