Output del programma Java | Insieme 6
Livello di difficoltà: intermedio
Prevedere l'output dei seguenti programmi Java.
Programma 1: Concatenamento di costruttori
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 (); } }
Produzione
a b c
Spiegazione: Quando viene creato un oggetto 'Terzo' prima di chiamare il costruttore predefinito di Terzo class il costruttore predefinito della super classe, ad es. Secondo viene chiamata la classe e poi di nuovo prima del costruttore predefinito della super classe costruttore predefinito di Primo viene chiamata la classe. E quindi l'output è nell'ordine abc.
Programma 2: Inizializzazione delle variabili ed esecuzione del costruttore
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 ); } }
Produzione
10 200 400
Spiegazione: Poiché nella classe 'Seconda' non ha una propria 'i', la variabile viene ereditata dalla super classe. Anche il costruttore di parent viene chiamato quando creiamo un oggetto di Secondo.
Programma 3: istanza di con Iteratori
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 ); } }
Produzione
false true false
Spiegazione: IL iteratore() Il metodo restituisce un iteratore sugli elementi nell'elenco nella sequenza corretta, non restituisce un oggetto List o ListIterator. UN ListIterator può essere ottenuto invocando il metodo listIterator.
Programma 4: eccezione di avvio e arresto del thread
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 (); } }
Produzione:
Run Time Exception
Spiegazione: Un thread non può essere avviato più di una volta. Chiamando inizio() metodo su un thread interrotto causa IllegalThreadStateException .