InstanceOf In - оператор, который используется для проверки типа объекта. Другими словами, он проверяет, является ли объект экземпляром определенного класса или интерфейса. Результатом такой операции будет либо Правда или Ложь
Следующие указатели будут рассмотрены в этой статье,
- случай
- Использование переменной с нулевым значением
- Родительский объект не является экземпляром дочернего
- Понижение
- Понимание instanceOf
Продолжаем эту статью о 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.
Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев в этом блоге, и мы свяжемся с вами как можно скорее.