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
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 |