Moeilijkheidsgraad: Gemiddeld
Voorspel de uitvoer van de volgende Java-programma's.
python afdrukken tot 2 decimalen
Programma 1: 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(); } }
Uitvoer
a b c
Uitleg: Wanneer een 'Third'-object wordt gemaakt voordat de standaardconstructor van wordt aangeroepen Derde class de standaardconstructor van superklasse, d.w.z. Seconde klasse wordt aangeroepen en dan opnieuw vóór de standaardconstructor van de standaardconstructor van de superklasse Eerst klasse wordt genoemd. En dus is de uitvoer in de volgorde a b c.
Programma 2: Initialisatie van variabelen en uitvoering van constructor
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); } }
Uitvoer
10 200 400
Uitleg: Omdat deze in de 'Tweede' klasse geen eigen 'i' heeft, wordt de variabele geërfd van de superklasse. Ook wordt de constructor van parent aangeroepen als we een object van maken Seconde.
Programma 3: instanceof met Iterators
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); } }
Uitvoer
false true false
Uitleg: De iterator() method retourneert een iterator over de elementen in de lijst in de juiste volgorde. Het retourneert geen List- of ListIterator-object. A LijstIterator kan worden verkregen door de listIterator-methode aan te roepen.
Vlc mediaspeler download youtube
Programma 4: Uitzondering voor draadstart en -stop
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(); } }
Uitgang:
Run Time Exception
Uitleg: Een thread kan niet vaker dan één keer worden gestart. Roeping begin() methode voor een gestopte thread veroorzaakt IllegalThreadStateException .