Nivel de dificultate: Intermediar
Preziceți rezultatul următoarelor programe Java.
Css alinierea imaginilor
Programul 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(); } }
Ieșire
a b c
Explicaţie: Când un obiect „Al treilea” este creat înainte de a apela constructorul implicit al Treilea class constructorul implicit al superclasei, adică Doilea clasa este apelată și apoi din nou înaintea constructorului implicit al super-clasei constructorului implicit al Primul se numește clasa. Și, prin urmare, ieșirea este în ordinea a b c.
Programul 2: Inițializarea variabilelor și execuția constructorului
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); } }
Ieșire
10 200 400
Explicaţie: Deoarece în clasa „A doua” nu are propriul „i”, variabila este moștenită din superclasa. De asemenea, constructorul parent este numit atunci când creăm un obiect de Doilea.
Programul 3: instanță cu Iteratoare
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); } }
Ieșire
false true false
Explicaţie: The iterator() metoda returnează un iterator peste elementele din listă în ordinea corectă, nu returnează un obiect List sau ListIterator. O ListIterator poate fi obținut prin invocarea metodei listIterator.
lungimea șirului bash
Programul 4: Excepție de pornire și oprire a firului
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(); } }
Ieșire:
Run Time Exception
Explicaţie: Un thread nu poate fi pornit de mai multe ori. Apel început() metoda pe un fir oprit cauze IllegalThreadStateException .