Как реализовать InstanceOf в JAVA?



Эта статья об InstanceOf в Java познакомит вас с Java instancOf Operator и последует практической демонстрацией.

InstanceOf In - оператор, который используется для проверки типа объекта. Другими словами, он проверяет, является ли объект экземпляром определенного класса или интерфейса. Результатом такой операции будет либо Правда или Ложь

Следующие указатели будут рассмотрены в этой статье,





Продолжаем эту статью о instanceOf в Java.

что такое модель программирования на основе pojo

Этот оператор также известен как тип оператор сравнения , поскольку экземпляр сравнивается с типом.



Синтаксис:

(объект) instanceof (тип)

Пример оператора instanceOf можно увидеть ниже:

открытый класс Main {public static void main (String [] args) {Main s = new Main () System.out.println (s instanceof Main)}}

Вывод



правда

В этом примере вывод, возвращаемый пользователю: правда , т.е. « s ”Является экземпляром класса Main.

пример

Объект подкласса типа также является типом родительского класса.

В следующем примере 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)}}

Вывод

правда

Продолжаем эту статью о instanceOf в Java.

Использование переменной с нулевым значением

class Music {public static void main (String args []) {Music m = null System.out.println (m instanceof Music) // false}}

В приведенном выше примере определенная переменная имеет нулевое значение.

Таким образом, возвращаемый результат - ложь.

Вывод

ложный

При использовании оператора instanceOf необходимо учитывать следующее:

Продолжаем эту статью о instanceOf в Java.

Родительский объект не является экземпляром 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 является экземпляром Child ') else System.out.println (' p не является экземпляром Child ')}}

Вывод

P не является экземпляром Child

Продолжаем эту статью о instanceOf в Java.

Downc жало

Когда на объект родительского класса ссылается подкласс, этот метод называется понижающим.

При прямом выполнении понижающего преобразования компилятор возвращает ошибку компиляции.

Rock r = new Music () // ошибка компиляции

При использовании преобразования типов во время выполнения генерируется исключение ClassCastException.

Rock r = (Rock) new Music () // компиляция прошла успешно, но выбрано исключение 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 (String [] args) {Музыка m = new Rock () Rock.method (m)}}

Вывод

структуры данных и алгоритмы в java

Прекращение преобразования успешно

Продолжаем эту статью о instanceOf в Java.

Понимание instanceOf:

Более подробно метод instanceOf можно понять из примеров, приведенных ниже:

В этом примере используется интерфейс:

интерфейс Экземпляр {} класс S реализует экземпляр {public void s () {System.out.println ('Первый метод')}} класс T реализует экземпляр {public void t () {System.out.println ('Второй метод') }} class Invoke {void invoke (Instance i) {// повышающее преобразование if (i instanceof S) {S s = (S) i // Downcasting ss ()} if (i instanceof T) {T t = (T) i // понижающее преобразование tt ()}}} class Main {public static void main (String args []) {Instance 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 в Java. Если вы хотите узнать больше, посетите обучение Java от Edureka, надежной компании, занимающейся онлайн-обучением. предназначен для обучения вас как основным, так и расширенным концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.