logo

A Java program kimenete | 6. készlet

Nehézségi szint: Közepes

Jósolja meg a következő Java programok kimenetét.

string összehasonlítani a java-val

1. program: 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();  } } 

Kimenet
a b c 

Magyarázat: Amikor egy „Harmadik” objektum jön létre, mielőtt meghívná az alapértelmezett konstruktort Harmadik class a szuperosztály alapértelmezett konstruktora, azaz. Második osztály kerül meghívásra, majd ismét a szuper osztály alapértelmezett konstruktora előtt Első osztályt hívják. Ezért a kimenet a b c sorrendben van.


2. program: Változó inicializálása és konstruktor végrehajtása

Java
class 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);  } } 

Kimenet
10 200 400 

Magyarázat: Mivel a 'Második' osztályban nincs saját 'i', a változó a szuperosztályból öröklődik. A szülő konstruktora is meghívásra kerül, amikor egy objektumot hozunk létre Második.


3. program: instanceof Iterátorokkal

Java
import 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);   }  } 

Kimenet
false true false

Magyarázat: A iterátor() A metódus egy iterátort ad vissza a lista elemei felett a megfelelő sorrendben, nem ad vissza List vagy ListIterator objektumot. A ListIterator listIterator metódus meghívásával kaphatjuk meg.

kapcsolatok java-ban


4. program: Szálindítás és leállítás kivétel

Java
class 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();  } } 

Kimenet:

Run Time Exception  

Magyarázat: Egy szál nem indítható el többször. Hívás indul() metódus egy leállított szálon okozza IllegalThreadStateException .