Question 11 : 문법오류

Given:
23. Object [] myObjects = {
24.      new integer(12),
25.      new String(”foo”),
26.      new integer(5),
27.      new Boolean(true)
28. };
29. Arrays.sort(myObjects);
30. for( int i=0; i<myObjects.length; i++) {
31.      System.out.print(myObjects[i].toString());
32.      System.out.print(” “);
33. }

What is the result?

A. Compilation fails due to an error in line 23.
B. Compilation fails due to an error in line 29.
C. A ClassCastException occurs in line 29.
D. A ClassCastException occurs in line 31.
E. The value of all four objects prints in natural order.


[HeadFirst Java - p.242]
# 자바에서 모든 클래스는 Object라는 클래스를 확장한 것입니다. Object라는 클래스는 모든 클래스의 어머니, 즉 모든 것의 상위클래스입니다.
# 명시적으로 다른 클래스를 확장하지 않은 클래스는 자동으로 Object를 확장한 클래스로 정의됩니다.
     public class Dog extends Object {
     ...
# 초특급 클래스인 Object 클래스에 들어있는 대표적인 4가지 메소드
     - equals(Object o)
     - getClass()
     - hashCode()
     - toString()

[HeadFirst Java - p.250]
# 객체 레퍼런스를 실제 유형으로 캐스트하는 방법
     Object o = al.get(index);
     Dog d = (Dog) o;
     d.roam();
# Dog인지 잘 모르겠다면 instanceOf 연산자를 써서 확인하면 됩니다. 엉뚱한 클래스로 캐스트하면 실행 중에 ClassCastException이 나면서 프로그램이 멎어버립니다.
     if (d instanceOf Dog) {
          Dog d = (Dog) o;
     ...

Answer: C
반응형

'잘난놈되기 > SCJP' 카테고리의 다른 글

Q013. import static  (0) 2008.04.03
Q012. 변수의 적용 범위  (0) 2008.04.01
Q010. HashSet  (0) 2008.03.30
Q009. 클래스 관계  (0) 2008.03.30
Q008. 접근제어자  (0) 2008.03.29

+ Recent posts