두 방법에 의해서 반환되는 Class 인스턴스는 시점에 따라서 달라지는데
.class는 compile time에 결정되고
.getClass()는 rumtime에 결정된다.
간단한 예제 프로그램으로 차이점을 확인할 수 있다.
public class ClassExample {
public ClassExample()
{
printClass();
}
final public void printClass()
{
System.out.println("ClasExample.class : " + ClassExample.class);
System.out.println("Sub_ClassExmaple.class : " + Sub_ClassExample.class);
System.out.println("this.getClass() : " + this.getClass());
}
public static void main(String[] args) {
System.out.println("new ClassExample()");
new ClassExample();
System.out.println("\nnew Sub_ClassExample()");
new Sub_ClassExample();
}
}
public class Sub_ClassExample extends ClassExample {
}
----------- output ---------------------------
new ClassExample()
ClasExample.class : class test.ClassExample
Sub_ClassExmaple.class : class test2.Sub_ClassExample
this.getClass() : class test.ClassExample
new Sub_ClassExample()
ClasExample.class : class test.ClassExample
Sub_ClassExmaple.class : class test2.Sub_ClassExample
this.getClass() : class test2.Sub_ClassExample
.class는 compile time에 결정되고
.getClass()는 rumtime에 결정된다.
간단한 예제 프로그램으로 차이점을 확인할 수 있다.
public class ClassExample {
public ClassExample()
{
printClass();
}
final public void printClass()
{
System.out.println("ClasExample.class : " + ClassExample.class);
System.out.println("Sub_ClassExmaple.class : " + Sub_ClassExample.class);
System.out.println("this.getClass() : " + this.getClass());
}
public static void main(String[] args) {
System.out.println("new ClassExample()");
new ClassExample();
System.out.println("\nnew Sub_ClassExample()");
new Sub_ClassExample();
}
}
public class Sub_ClassExample extends ClassExample {
}
----------- output ---------------------------
new ClassExample()
ClasExample.class : class test.ClassExample
Sub_ClassExmaple.class : class test2.Sub_ClassExample
this.getClass() : class test.ClassExample
new Sub_ClassExample()
ClasExample.class : class test.ClassExample
Sub_ClassExmaple.class : class test2.Sub_ClassExample
this.getClass() : class test2.Sub_ClassExample
'Dev > Java' 카테고리의 다른 글
Java Programming Language: Design Principles and Proposals (0) | 2007.11.29 |
---|---|
TimeZone Bug (0) | 2007.11.14 |
eclipse 에서 라이브러리 추가하기 (0) | 2007.10.18 |