JAVA에서 InstanceOf를 구현하는 방법?



Java의 InstanceOf에 대한이 기사는 Java instancOf 연산자를 소개하고 실제 데모를 따라갑니다.

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 개념 모두에 대해 교육하도록 설계되었습니다.

질문이 있으십니까? 이 블로그의 댓글 섹션에 언급 해 주시면 가능한 한 빨리 답변을 드리겠습니다.