Ниво тежине: средњи
Предвидите излаз следећих Јава програма.
алгебра скупова
Програм 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
Објашњење: Када се креира 'Трећи' објекат пре позивања подразумеваног конструктора оф Треће цласс подразумевани конструктор супер класе тј. Друго цласс се позива, а затим поново испред подразумеваног конструктора супер класе подразумеваног конструктора Прво разред се зове. И стога је излаз у редоследу а б ц.
Програм 2: Иницијализација променљиве и извршавање конструктора
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); } }
Излаз
10 200 400
Објашњење: Пошто у 'другој' класи нема своје 'и', променљива је наслеђена од супер класе. Такође се позива конструктор родитеља када креирамо објекат од Друго.
Програм 3: инстанцеоф са итераторима
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); } }
Излаз
false true false
Објашњење: Тхе итератор() метода враћа итератор преко елемената на листи у правилном редоследу, не враћа Лист или ЛистИтератор објекат. А ЛистИтератор може се добити позивањем методе листИтератор.
тостринг јава метод
Програм 4: Изузетак покретања и заустављања нити
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(); } }
Излаз:
Run Time Exception
Објашњење: Нит се не може покренути више од једном. Цаллинг старт() метода на заустављеној нити узрокује ИллегалТхреадСтатеЕкцептион .