Излаз Јава програма | Сет 6
Ниво тежине: средњи
Предвидите излаз следећих Јава програма.
Програм 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: Иницијализација променљиве и извршавање конструктора
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
Објашњење: Пошто у 'другој' класи нема своје 'и', променљива је наслеђена од супер класе. Такође се позива конструктор родитеља када креирамо објекат од Друго.
Програм 3: инстанцеоф са итераторима
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
Објашњење: Тхе итератор() метода враћа итератор преко елемената на листи у правилном редоследу, не враћа Лист или ЛистИтератор објекат. А ЛистИтератор може се добити позивањем методе листИтератор.
Програм 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
Објашњење: Нит се не може покренути више од једном. Цаллинг старт() метода на заустављеној нити узрокује ИллегалТхреадСтатеЕкцептион .