2009년 12월 31일 목요일

포인터, 아니 인스턴스 변수 대입했을 때 멤버변수의 값 변화

1. public class Test {
2. public static void main(String args[]) {
3. class Foo {
4. public int i = 3;
5. }
6. Object o = (Object)new Foo();
7. Foo foo = (Foo)o;
8. System.out.println("i = " + foo.i);
9. }
10. }
What is the result?
A. i = 3
B. Compilation fails.
C. A ClassCastException is thrown at line 6.
D. A ClassCastException is thrown at line 7.


Foo를 생성한다. o 포인터에 넣어주고, 참 인스턴스 변수. 아니지 포인터.
o를 캐스팅해서 포인터 foo에 넣어준다. 그러고는 멤버변수 i 를 찍는다.

당근 3이지 ㅡㅡ; Object 는 void 포인터라고 생각하면 된다.


B언어 만든 켄 톰슨, C언어 만든 데니스 리치. 정말 만나고 싶다.
사인이라도 굽신굽신 ^^ 뭐... 알아보지도 못할 가능성이 있으니 그들의 제품에
감사할 따름.

bootcamp 지우기

맥북 프로 레티나 터치바 diskutility 에서 bootcamp 파티션 삭제하면 검은색에서 회색으로 바뀐다(APFS로 지정) 파틴션 아이콘 클릭하여 - 버튼을 이용하여 삭제하면 끝.