logo

Java プログラムの出力 |セット6

難易度: 中級

次の Java プログラムの出力を予測します。

Javaクラス図

プログラム 1: コンストラクターの連鎖



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

出力
a b c 

説明: のデフォルトのコンストラクターを呼び出す前に「3 番目」のオブジェクトが作成されるとき 三番目 class スーパークラスのデフォルトコンストラクター、つまり 2番 クラスが呼び出され、スーパークラスのデフォルトコンストラクターの前に再度呼び出されます。 初め クラスが呼び出されます。したがって、出力は a b c の順序になります。


プログラム 2: 変数の初期化とコンストラクターの実行

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

出力
10 200 400 

説明: 「Second」クラスには独自の「i」がないため、変数はスーパークラスから継承されます。また、親のコンストラクターは、オブジェクトを作成するときに呼び出されます。 2番。


プログラム 3: イテレータを使用した instanceof

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

出力
false true false

説明: イテレータ() このメソッドは、リスト内の要素に対する反復子を適切な順序で返します。List オブジェクトや ListIterator オブジェクトは返しません。あ リスト反復子 listIterator メソッドを呼び出すことで取得できます。

設定メニューを開く


プログラム 4: スレッドの開始および停止の例外

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

出力:

Run Time Exception  

説明: スレッドは複数回開始することはできません。電話をかける 始める() 停止したスレッドのメソッドが原因で IllegalThreadStateException