Java プログラムの出力 |セット6
難易度: 中級
次の 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 。