산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

Java instanceof 연산자 완벽 가이드: 기본 사용법부터 상속, 인터페이스까지

Java instanceof 연산자 완벽 가이드

Java instanceof 연산자의 동작 원리를 기본 사용법, 상속, 인터페이스 예제와 함께 명확히 설명합니다.

Java에서 instanceof 연산자는 객체가 특정 클래스나 인터페이스에 속하는지 검증합니다. 객체의 런타임 타입이 지정된 타입과 일치하면 true, 그렇지 않으면 false를 반환합니다.

objectName instanceof className;

아래는 String과 사용자 정의 클래스로 연산자를 시연하는 간단한 예제입니다.

예제: 기본 instanceof 사용법

class Main { public static void main(String[] args) { String name = "Programiz"; boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); Main obj = new Main(); boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); } }

출력

name is an instance of String: true obj is an instance of Main: true

두 검사 모두 true를 반환합니다. name이 String이고 obj가 Main 인스턴스이기 때문입니다.

참고: Java에서 String은 참조 타입이며 원시 타입이 아닙니다.

상속에서 instanceof 사용

이 연산자는 다형성 계층 구조 작업 시 매우 유용합니다. 하위 클래스 인스턴스가 슈퍼클래스 타입도 만족하는지 확인합니다.

// 슈퍼클래스 class Animal {} // 서브클래스 class Dog extends Animal {} class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Dog); // true System.out.println(d1 instanceof Animal); // true } }

보시다시피 d1은 Dog이자 Animal로 인식되어 Java의 상속 모델을 반영합니다.

인터페이스에서 instanceof 사용

instanceof는 객체가 특정 인터페이스를 구현하는지도 검사합니다.

interface Animal { } class Dog implements Animal { } class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Animal); // true } }

여기서 d1은 Animal을 구현하는 Dog이므로 연산자는 true를 반환합니다.

참고: 모든 Java 클래스는 궁극적으로 java.lang.Object를 확장합니다. 따라서 모든 객체는 Object 인스턴스이기도 합니다. 예:

d1 instanceof Object

이는 항상 true로 평가됩니다.

java

  1. Java final 키워드 마스터: 변수, 메서드, 클래스에서의 활용
  2. Java 상속 마스터: 개념, 종류, 실전 예제 총정리
  3. Java 정적 중첩 클래스 이해: 용법, 내부 클래스와의 차이, 예제
  4. Java 익명 내부 클래스 마스터: 정의, 문법, 실전 예제
  5. Java 싱글톤 패턴 완벽 가이드: 안전하게 구현하고 사용하기
  6. Java 리플렉션 마스터: 런타임에 클래스, 메서드, 필드 검사 및 조작
  7. Java ObjectOutputStream 마스터하기: 직렬화, 메서드, 실전 예제
  8. Java 제네릭 마스터하기: 재사용 가능하고 타입 안전한 코드 작성
  9. java.io로 Java 파일 작업 마스터하기 – 생성, 읽기, 쓰기 및 삭제
  10. Java 9: 다이아몬드 연산자로 익명 이너 클래스 간소화