Вступ до instanceOf на Java

instanceOf - це клас мови програмування Java, який при виклику повертає булеве значення і використовується для вивчення зв’язку між Об'єктом та класом / інтерфейсом. Завдяки своїй здатності порівнювати ці два, він також відомий як "оператор порівняння типів". Просто, instanceOf використовується для перевірки того, чи є об'єкт будь-якого типу чи ні, і він повертає булеве значення, яке є істинним, або хибним. InstanceOf - один з корисних операторів Java, який допомагає отримувати корисну інформацію про об'єкт, у середовищі виконання.

Синтаксис:

Клас instanceOf використовується для перевірки, чи є об'єкт будь-якого класу чи ні.

obj instanceOf object

Вище - стандартний синтаксис для classOf класу. Тут obj - це ім'я об'єкта, який повинен бути створений раніше (посилання). instanceOf - це ключове слово, а об'єктом є клас або інтерфейс, з яким ми співставляємо об'єкт obj.

У різних випадках instanceOf може бути корисним, як, наприклад, там, де у нас є колекція об'єктів, і ви не впевнені, про який об’єкт йдеться. Прикладом такого випадку може бути проста форма з багатьма елементами управління.

Крім того, якщо у випадку, коли ми використовуємо instanceOf зі змінною, яка має значення NULL, вона обов'язково поверне значення false.

Як працює instanceOf?

Оператор instanceOf в java працює на простому взаємозв'язку. Проста кажучи, співвідношення is-a - це об'єктно-орієнтоване поняття, де ми порівнюємо або говоримо, працюємо над відношенням між абстракціями, де клас A є підкласом класу B. Це відносини, що повністю ґрунтуються на успадкуванні. Іншими словами, це як би сказати: "X - тип Y".

Тепер давайте розберемося з роботою instanceOf разом із відповідним кодом.

Спочатку ми створимо клас під назвою Parent.

Код:

Class Parent(
)
Then let's add a simple main class.
public static void main(String args()) (
)

Потім створимо екземпляр класу Parent.

Parent child = new Parent();

Нарешті, ми використаємо оператор instanceOf для перевірки зв’язку між дитиною та батьком. Що йде так: дочірній примірник батьків

Тепер, як було сказано раніше, синтаксис для primjerOf переходить від об'єкта, який повинен перевірити, потім ключового слова instanceOf, а потім класу / інтерфейсу, з яким даний об’єкт повинен бути перевірений.

У будь-якій точці, де у декларації класу ми стикаємося з ключовим словом "розширює" або "реалізує", це явна ознака "співвідношення", яке використовується.

Приклади instanceOf в Java

Наступний приклад демонструє використання рядка instanceOf в одному рядку.

Class instanceof_java(
public static void main(String args()) (
instanceof_java s = new instanceof_java();
System.out.println(s instanceOf instanceof_java);
)
)

Інтерпретація коду: Розпочато зі створення простого класу instanceof_java. У класі instanceof_java у нас є основний клас, а в основному класі створений об'єкт s. Цей об'єкт s має тип instanceof_java. Потім для реалізації роботи instanceOf ми надали вихідний оператор з об'єктом s. В останньому рядку ми передали s разом із ключовим словом instanceof та батьківським класом. Після виконання код поверне "true", оскільки об'єкт s має тип instanceof.

Якщо рухатись далі, якщо у нас є об'єкт відомого нашого класу чи інтерфейсу, але ми не присвоїли жодному значенню тому самому об’єкту, він неминуче поверне помилкове значення, навіть будучи одним класом.

Class instanceof_sample(
public static void main(String args()) (
instanceof_sample new = null;
System.out.println(new instanceOf instanceof_sample);
)
)

Тут ми маємо аналогічний код, який ми мали для попереднього прикладу, але з об’єктом з нульовим значенням. Після виконання цього коду повернеться помилковим. Як ми бачимо, об'єктом new є екземпляр instanceof_sample, але новий присвоюється нульовим значенням, яке повертається у помилковому значенні.

Правила для оператора

Виходячи з того, чи відповідає об'єкт реф не є нульовим, а екземпляр згаданого типу. Коли X - простий клас згаданого об'єкта, а Y - розв'язаний клас або масив типу інтерфейсу.

  • Коли X - простий клас, тоді:
  • Якщо Y - тип класу, то X повинен бути підкласом Y або X повинен бути таким же класом, як Y.
  • Якщо Y - тип інтерфейсу, то X-клас повинен реалізувати інтерфейс T.
  • Коли X є інтерфейсом типу, тоді:
  • Якщо Y - клас класу, то Y повинен бути Об'єктом.
  • Y може бути таким же, як інтерфейс як X або супер інтерфейс X, якщо Y - тип інтерфейсу.
  • Якщо X - клас, який представляє масив типу SC (), який є масивом компонентів типу SC, то:
  • Якщо Y - тип класу, то Y повинен бути об'єктом.
  • Якщо Y - тип інтерфейсу, то Y повинен бути типу інтерфейсу, реалізованого масивами.

Нарешті, ми продемонструємо програму instanceOf, щоб зрозуміти, що батьківський об'єкт не може бути екземпляром дочірнього класу.

Програма

class Subject ( )
class Topic extends Subject ( )
class instanceof_java
(
public static void main(String() args)
(
Subject history = new Subject ();
if (history instanceof Topic)
System.out.println("history is instance of Topic");
else
System.out.println("history is NOT instance of Topic");
)
)

Інтерпретація коду: Для розуміння оператора instanceOf в різних сценаріях ми написали наведений вище код. Ми створили простий клас Subject, а потім ще одну тему класу, яка розширює тему класу, роблячи тут клас Topic як дочірній і клас Subject як батьківський. Потім ще один клас з основним методом. В рамках основного методу ми створили новий екземпляр батьківського класу Subject. У циклі IF ELSE ми перевірили стан об'єкта екземпляра з батьківським класом Subject. Якщо умова була виконана, вона поверне "історія - це екземпляр теми", а "історія НЕ є екземпляром теми", якщо умова не виконана.

Після виконання вищевказаного коду результатом буде "історія НЕ екземпляр теми", тобто умова, передана в ІФ, не відповідає. Це сталося тому, що ми намагалися перевірити батьківський об’єкт «історія» класом Topic. Ми знаємо, що клас Topic поширює клас Subject, тобто тема є підкласом Subject. І коли ми намагалися перевірити тип історії за допомогою класу Topic, вона повертає помилку (НЕ). Це означає, що батьківський об’єкт не може бути екземпляром класу.

Вихід:

Висновок - instanceOf в Java

Ми дізналися про клас instanceOf в Java, який просто вирішує, чи є об'єкт даного типу. Ми зрозуміли, як взаємозв’язок впливає на оператора instanceOf. Також відомий як оператор порівняння, instanceOf заснований на спадкуванні.

Рекомендовані статті

Це був посібник для InstanceOf на Java. Тут ми обговорюємо, як InstanceOf в Java працює, правила з інтерпретацією коду. Ви також можете переглянути наступні статті, щоб дізнатися більше -

  1. Ключові слова Java
  2. Анотації на Java
  3. Чит-лист JavaScript
  4. PHP Ключові слова