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
- 자바 코드 가이드
- session단점
- session이란?
- jwt토큰원리
- GPT프로젝트
- ReverseProxy
- 백엔드 서버
- 프로그래밍 배열
- 세션장단점
- jwt토큰관리
- 신입개발자
- jwt토큰구조
- 세션장점
- 프록시서버
- 구글 자바 스타일
- 메모리에서 배열
- session이 뭔가요?
- jwt란?
- 신입개발자 프로젝트
- 배열과 메모리
- jwt원리
- 우아한테크코스 Google Java Style Guid
- Google Java Code Style Guide
- 포워드프록시
- 세션단점
- session이뭔가요?
- 토큰구조
- session장점
- Google Java Style Guide
- 구글 자바 코드 스타일
Archives
- Today
- Total
dev_dbdb1114
Java instanceof 연산자 본문
instanceof 연산자는 인스턴스의 실제타입을 알아보기 위해 사용되고, 대개 조건문에서 사용된다.
사용법은 "참조변수 instanceof 타입(피연산자)" 방식으로 사용된다. 연산결과는 boolean타입이다.
아래와 같이 설명할 수 있는데 참조변수가 피연산자 타입이 맞다면, true를 반환하고, 아니라면 false를 반환한다.
자손클래스가 조상클래스를 포함하지만 만약에 피연산자로 자손타입이 온다면 결과값은 false가 나온다.
반대로 피연산자로 조상타입이 온다면 결과값은 true가 나온다.
class Parents{}
class Child extends Parents{}
public class instanceof_ {
public static void main(String[] args) {
Child child = new Child();
Parents parents = new Parents();
System.out.println(child instanceof Child); // true
System.out.println(parents instanceof Child); // false
System.out.println(child instanceof Parents); // true
System.out.println(parents instanceof Parents); // true
}
}
이 연산자를 사용하는 이유는
만약 어떠한 메소드에서 매개변수로 인스턴스가 올 때,
올 수 있는 매개변수는 해당하는 타입의 인스턴스와 조상타입의 인스턴스이기 때문에 어떤 타입의 인스턴스가 들어왔을지 정확히 알 수 없다. 따라서 앞서 말했듯 대개 조건문에서 쓴다고 하였던 이유도 if문의 조건문 안에서 어떤 타입의 인스턴스인지 확인 후, 인스턴스에 따라서 문장을 수행시키기 위함이었다.
공부를 하다가 내가 instanceof 연산자를 제대로 모르고 있었다는 사실을 발견하고, 급하게 정리를 한다.
내 착각은 "조상클래스의 인스턴스 instanceof 자손클래스"를 확인하면 true가 반환될 것이라고 생각했었다. 하지만 위에서 말했듯 그렇지 않다.
'프로그래밍 > JAVA' 카테고리의 다른 글
| Java 예외처리 [메서드에 예외 선언하기] (0) | 2022.05.24 |
|---|---|
| Java 예외처리 [예외 발생시키기, (un)checked 예외] (0) | 2022.05.24 |
| Java 예외처리 (printStackTrace()와 getMessage()) (0) | 2022.05.21 |
| JAVA 예외처리 (try-catch문) (0) | 2022.05.21 |
| Java 예외처리(예외의 구분과 분류) (0) | 2022.05.21 |
Comments