Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Оператор instanceof в Java: полное руководство с примерами

Оператор instanceof в Java: полное руководство

Изучите, как работает оператор instanceof в Java, с понятными примерами базового использования, наследования и интерфейсов.

В Java оператор instanceof позволяет проверить, принадлежит ли объект к определенному классу или интерфейсу. Он возвращает true, если тип объекта во время выполнения соответствует указанному типу, иначе — false.

objectName instanceof className;

Ниже приведен простой пример демонстрации оператора с String и пользовательским классом.

Пример: Базовое использование instanceof

class Main { public static void main(String[] args) { String name = "Programiz"; boolean result1 = name instanceof String; System.out.println("name is an instance of String: " + result1); Main obj = new Main(); boolean result2 = obj instanceof Main; System.out.println("obj is an instance of Main: " + result2); } }

Вывод:

name is an instance of String: true obj is an instance of Main: true

Обе проверки возвращают true, потому что name действительно является String, а obj — экземпляром Main.

Примечание: В Java String — это ссылочный тип, а не примитив.

Использование instanceof с наследованием

Оператор бесценен при работе с полиморфными иерархиями. Он подтверждает, что экземпляр подкласса также удовлетворяет типу суперкласса.

// Суперкласс class Animal {} // Подкласс class Dog extends Animal {} class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Dog); // true System.out.println(d1 instanceof Animal); // true } }

Как показано, d1 распознается и как Dog, и как Animal, отражая модель наследования Java.

Использование instanceof с интерфейсами

instanceof также проверяет, реализует ли объект определенный интерфейс.

interface Animal { } class Dog implements Animal { } class Main { public static void main(String[] args) { Dog d1 = new Dog(); System.out.println(d1 instanceof Animal); // true } }

Здесь d1 — это Dog, реализующий Animal, поэтому оператор возвращает true.

Примечание: Любой Java-класс в конечном счете расширяет java.lang.Object. Следовательно, любой объект также является экземпляром Object. Например:
d1 instanceof Object

Это всегда будет оцениваться как true.

java

  1. Ключевое слово final в Java: переменные, методы и классы
  2. Наследование в Java: концепции, типы и практические примеры
  3. Статические вложенные классы в Java: использование, отличия и примеры
  4. Анонимные внутренние классы в Java: определение, синтаксис и практические примеры
  5. Паттерн Singleton в Java: как реализовать и безопасно использовать
  6. Рефлексия в Java: инспекция классов, методов и полей во время выполнения
  7. Освоение Java ObjectOutputStream: сериализация, методы и практические примеры
  8. Освоение Java Generics: создание переиспользуемого, типобезопасного кода
  9. Мастерство файловых операций в Java с java.io: создание, чтение, запись и удаление
  10. Java 9: Diamond Operator (<>) для анонимных внутренних классов