logo

Вихід програми Java | Набір 6

Рівень складності: середній

Передбачте вихід наступних програм Java.

r мовою c

Програма 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 

Пояснення: Коли об'єкт "Третій" створюється перед викликом конструктора за замовчуванням По-третє class типовий конструктор суперкласу, тобто друге викликається клас, а потім знову перед конструктором за замовчуванням суперкласу конструктор за замовчуванням перше клас називається. І, отже, результат буде в порядку 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 

Пояснення: Оскільки в «другому» класі він не має власного «i», змінна успадковується від суперкласу. Також конструктор батьківського елемента викликається, коли ми створюємо об’єкт друге.


Програма 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

Пояснення: The ітератор() метод повертає ітератор над елементами списку в належній послідовності, він не повертає об’єкт List або ListIterator. А ListIterator можна отримати, викликавши метод listIterator.

файлова система в linux


Програма 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 .