InstanceOf In 객체의 유형을 확인하는 데 사용되는 연산자입니다. 즉, 객체가 특정 클래스의 인스턴스인지 인터페이스인지 테스트합니다. 이러한 작업의 출력은 다음 중 하나입니다. 진실 또는 그릇된
이 기사에서는 다음 사항을 다룰 것입니다.
Java의 instanceOf에 대한이 기사를 계속 진행합니다.
이 연산자는 유형이라고도합니다. 비교 연산자 , 인스턴스가 유형과 비교됩니다.
통사론:
(객체) instanceof (유형)
instanceOf 연산자의 예는 아래에서 볼 수 있습니다.
public class Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}
산출
진실
이 예에서 사용자에게 반환 된 출력은 다음과 같습니다. 진실 , 즉 “ 에스 ”는 Main 클래스의 인스턴스입니다.
C ++ 범위 연산자
예
하위 클래스 유형의 객체는 상위 클래스 유형이기도합니다.
다음 예에서 Rock은 Music을 확장합니다. Rock의 대상은 Rock 또는 Music 클래스에서 참조 할 수 있습니다.
class Music {} class Rock extends Music {// Rock은 Music 상속 public static void main (String args []) {Rock r = new Rock () System.out.println (r instanceof Rock)}}
산출
진실
Java의 instanceOf에 대한이 기사를 계속 진행합니다.
null 값이있는 변수 사용
class Music {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}
위에 주어진 예에서 정의 된 변수는 널값을 갖습니다.
따라서 반환 된 출력은 거짓입니다.
산출
그릇된
instanceOf 연산자를 사용하는 동안 다음 사항에 유의해야합니다.
Java의 instanceOf에 대한이 기사를 계속 진행합니다.
부모 개체는 Child의 인스턴스가 아닙니다.
class Parent {} class Child extends Parent {} class Main {public static void main (String [] args) {Parent p = new Parent () if (p instanceof Child) System.out.println ( 'p is an instance of Child) ') else System.out.println ('p는 Child의 인스턴스가 아닙니다 ')}}
산출
P는 Child의 인스턴스가 아닙니다.
Java의 instanceOf에 대한이 기사를 계속 진행합니다.
Downc asting
Subclass가 Parent 클래스의 객체를 참조 할 때이 메서드를 다운 캐스팅이라고합니다.
다운 캐스팅을 직접 수행하면 컴파일러가 컴파일 오류를 반환합니다.
Rock r = new Music () // compilation error
형변환을 사용하면 런타임에 ClassCastException이 발생합니다.
Rock r = (Rock) new Music () // compilation 성공했지만 ClassCastException 발생
다운 캐스팅이 가능한 유일한 방법은 instanceof 연산자를 사용하는 것입니다.
제 시간에 컴파일러 자바
class Music {} class Rock extends Music {static void method (Music m) {if (m instanceof Rock) {Rock r = (Rock) m // downcasting System.out.println ( 'Downcasting Successful')}} public static void main (문자열 [] args) {음악 m = new Rock () Rock.method (m)}}
산출
다운 캐스팅 성공
Java의 instanceOf에 대한이 기사를 계속 진행합니다.
instanceOf 이해 :
instanceOf 메서드는 아래에 주어진 예제를 통해보다 명확하게 이해할 수 있습니다.
이 예제는 인터페이스를 사용합니다.
interface Instance {} 클래스 S 구현 인스턴스 {public void s () {System.out.println ( 'First method')}} 클래스 T 구현 인스턴스 {public void t () {System.out.println ( 'Second method') }} class Invoke {void invoke (Instance i) {// upcasting if (i instanceof S) {S s = (S) i // 다운 캐스팅 ss ()} if (i instanceof T) {T t = (T) i // 다운 캐스팅 tt ()}}} class Main {public static void main (String args []) {인스턴스 i = new T () Invoke v = new Invoke () v.invoke (i)}}
예제의 출력은 다음과 같습니다.
두 번째 방법
이 예는이 개념을 정확한 방식으로 보여줍니다. 여기에서 상위 클래스는 Instrument이고 두 개의 하위 클래스는 Guitar와 Piano입니다.
class Instrument {} class Guitar extends Instrument {} class Piano extends Instrument {} class Main {public static void main (String [] args) {Instrument i = new Instrument () Guitar g = new Guitar () Piano p = new Piano ( ) System.out.println (g instanceof Instrument) System.out.println (p instanceof Instrument) System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano) i = g System.out.println ( i instanceof Guitar) System.out.println (i instanceof Piano) i = p System.out.println (i instanceof Guitar) System.out.println (i instanceof Piano)}}
출력은 다음과 같습니다.
진실
진실
그릇된
그릇된
진실
그릇된
그릇된
진실
이것이 객체의 유형을 효율적으로 찾는 방법입니다. instanceOf 연산자는 메서드가 적절하게 실행된다는 점을 고려할 때 매우 유용합니다.
따라서 우리는 'instanceOf in Java'에 대한이 기사의 끝까지 왔습니다. 자세한 내용은 신뢰할 수있는 온라인 학습 회사 인 Edureka의 Java Training을 확인하십시오. Hibernate 및 Spring과 같은 다양한 Java 프레임 워크와 함께 핵심 및 고급 Java 개념 모두에 대해 교육하도록 설계되었습니다.
질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.