Saída do programa Java | Conjunto 6
Nível de dificuldade: intermediário
Preveja a saída dos seguintes programas Java.
Programa 1: Encadeamento de Construtores
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 (); } }
Saída
a b c
Explicação: Quando um objeto 'Terceiro' é criado antes de chamar o construtor padrão de Terceiro class o construtor padrão da superclasse, ou seja, Segundo classe é chamada e novamente antes do construtor padrão da superclasse construtor padrão de Primeiro classe é chamada. E, portanto, a saída está na ordem a b c.
Programa 2: Inicialização de Variável e Execução de Construtor
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 ); } }
Saída
10 200 400
Explicação: Como na classe 'Segunda' não possui 'i' próprio, a variável é herdada da superclasse. Além disso, o construtor de parent é chamado quando criamos um objeto de Segundo.
Programa 3: instância com Iteradores
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 ); } }
Saída
false true false
Explicação: O iterador() O método retorna um iterador sobre os elementos da lista na sequência adequada; ele não retorna um objeto List ou ListIterator. UM ListIterator pode ser obtido invocando o método listIterator.
Programa 4: Exceção de Início e Parada de 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 (); } }
Saída:
Run Time Exception
Explicação: Um thread não pode ser iniciado mais de uma vez. Chamando começar() método em um thread interrompido causa IllegalThreadStateException .