반응형
자바에서는 객체가 어떤 클래스나 인터페이스로부터 생성되었는지를 판별해주는 instanceof를 제공한다.
객체명 instanceof 타입(클래스명or인터페이스명)
객체가 해당 타입이면 true를 아니면 false를 리턴한다. 타입에 상위 클래스 객체명에 하위 클래스의 객체일 경우에도 true를 리턴한다.
※ 참고
타입이 상위클래스도 하위클래스도 아닐경우 에러가 난다. 타입은 해당 객체의 클래스의 상위 클래스 혹은 하위클래스여야 한다.
예제소스
class C1 { public C1() {} } class C2 extends C1{ public C2() {} } class C3 extends C2 { public C3() {} } public class JavaTest { public static void main(String[] args) { C1 class1 = new C1(); C2 class2 = new C2(); C3 class3 = new C3(); if(class1 instanceof C1) //class1이 C1의 객체인경우 true System.out.println("class1 is C1's object 1"); if(class2 instanceof C1) //class2가 C1의 하위클래스인 C2의 객체인경우 true System.out.println("class1 is C1's object 2"); if(class3 instanceof C1) //class3이 C1의 하위 클래스인 C2의 하위클래스인 C3의 객체인경우 true System.out.println("class1 is C1's object 3"); if(class2 instanceof C3) //class2가 C3의 하위클래스이므로 false System.out.println("class1 is C1's object 4"); if(class2 instanceof C2) //class2가 C2의 객체이므로 true System.out.println("class1 is C1's object 5"); } }
반응형
'Language, IDE > JAVA, android' 카테고리의 다른 글
[JAVA 자바] 랜덤함수(Random) - 난수 발생기 (0) | 2013.08.11 |
---|---|
[JAVA 자바] synchronized - 스레드 동기화 (0) | 2013.08.11 |
[JAVA 자바] super (0) | 2013.07.24 |
[JAVA 자바] 매개변수 (0) | 2013.07.22 |
[JAVA 자바] StringTokenizer (0) | 2013.07.14 |