Java 프로그램의 출력 | 세트 6
난이도: 중급
다음 Java 프로그램의 출력을 예측하십시오.
프로그램 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
설명: 기본 생성자를 호출하기 전에 '세 번째' 객체가 생성되는 경우 제삼 클래스 슈퍼 클래스의 기본 생성자, 즉 두번째 클래스가 호출된 다음 슈퍼 클래스의 기본 생성자 앞에 다시 호출됩니다. 첫 번째 수업이 호출됩니다. 따라서 출력은 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: 반복자가 있는 인스턴스
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
설명: 그만큼 반복자() 메소드는 적절한 순서로 목록의 요소에 대한 반복자를 반환하지만 List 또는 ListIterator 객체를 반환하지 않습니다. 에이 목록반복자 listIterator 메소드를 호출하여 얻을 수 있습니다.
프로그램 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 .