Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 람다
- 객체지향프로그램
- EffectiveJava
- 믹스인
- 스프링 #Spring #spring #입문서
- 이펙티브자바
- java # for문 #반복문
- java #조건문 #if문
- IntelliJ
- 자바
- 메서드
- java
- Math.sqrt()
- 해쉬맵
- java #자바 #상속
- Math.pow()
- java #조건문 #if조건문 #if
- 자바 #java #상속
- java #중첩반복문 #구구단
- 인텔리제이
- java #객체지향 #자바
- HashMap
- overring
- Arrays.toString()
- 자바 #JAVA
- Mixin
- java #자료형
- 자바 #변수 #java
- java #continue #반복문
- java #자바 #상속 #오버라이딩
Archives
- Today
- Total
산으로 가자▲
instance of (객체타입 확인) 본문
instanceof
- instanceof는 객체 타입을 확인하는 연산자이다.
- 형변환 가능 여부를 확인하며 true / false로 결과를 반환한다.
- 주로 상속 관계에서 부모객체인지 자식 객체인지 확인하는 데 사용된다.
instanceof의 기본 사용방법은 "객체 instanceof 클래스" 를 선언함으로써 사용한다.
다음 예제로 어떤 구조인지 파악해 보자
class Parent{}
class Child extends Parent{}
public class InstanceofTest {
public static void main(String[] args){
Parent parent = new Parent();
Child child = new Child();
System.out.println( parent instanceof Parent ); // true
System.out.println( child instanceof Parent ); // true
System.out.println( parent instanceof Child ); // false
System.out.println( child instanceof Child ); // true
}
}
왜 세번째는 false가 반환되었을까?
instanceof를 위에서 "객체 타입 확인", "형 변환 가능한지 여부 확인"이라 말했는데 어렵게 느껴진다면
쉽게 말해 instancof는 해당 클래스가 자기집이 맞는지 확인해 주는 것이라고 생각하면 될 것이다.
1. parent instanceof Parent : 부모가 본인 집을 찾았으니 true
2. child instanceof Parent : 자식이 상속받은 부모 집을 찾았으니 true (상속을 받았으니 자기 집이라 해도 무방하다?)
3. parent instanceof Child : 부모가 자식 집을 찾았으니 false (자식 집은 자식 집이지 부모 집은 아니니까)
4. child instanceof Child : 자식이 본인 집을 찾았으니 true
위에서 설명한 것과 마찬가지로 이러나저러나 본인이 이해하기 쉽게 받아들이면 될 것 같다.
누구한테는 하위 클래스니 상위 클래스니 하면서 접근하는 게 이해가 더 잘 될 수 있으니 말이다.
*형 변환이 불가능한 즉 타입이 상위 클래스도 하위 클래스도 아닐 경우에는 에러가 난다.
'Java' 카테고리의 다른 글
컴파일 과정 (0) | 2022.10.24 |
---|---|
자바의 매개변수란??? (0) | 2022.10.24 |
배열의 값 출력하는 2가지 방법알아보기 (반복문과 Arrays.toString()) (0) | 2022.10.12 |
String을 int로/ int를 String으로 변환 (문자열, 숫자 변환방법) (0) | 2022.10.12 |
람다함수란? (1) | 2022.10.11 |