Java Toán tử instanceof

Trong hướng dẫn này, bạn sẽ tìm hiểu chi tiết về toán tử instanceof của Java với sự trợ giúp của các ví dụ.

Các instanceofnhà điều hành trong Java được sử dụng để kiểm tra xem một đối tượng là một thể hiện của một lớp học đặc biệt hay không.

Cú pháp của nó là

objectName instanceOf className;

Ở đây, nếu objectName là một thể hiện của className , thì toán tử sẽ trả về true. Nếu không, nó sẽ trả về false.

Ví dụ: Java instanceof

class Main {

  public static void main(String[] args) {

    // create a variable of string type
    String name = "Programiz";
    
    // checks if name is instance of String
    boolean result1 = name instanceof String;
    System.out.println("name is an instance of String: " + result1);

    // create an object of Main
    Main obj = new Main();

    // checks if obj is an instance of Main
    boolean result2 = obj instanceof Main;
    System.out.println("obj is an instance of Main: " + result2);
  }
}

Đầu ra

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

Trong ví dụ trên, chúng tôi đã tạo ra một biến tên của Stringloại và một đối tượng obj của chính lớp.

Ở đây, chúng tôi đã sử dụng các instanceofnhà điều hành để kiểm tra xem tên và obj là trường hợp của các Stringvà chính lớp tương ứng. Và, toán tử trả về truetrong cả hai trường hợp.

Lưu ý : Trong Java, Stringlà một lớp chứ không phải là một kiểu dữ liệu nguyên thủy. Để tìm hiểu thêm, hãy truy cập Chuỗi Java .

Java instanceof trong quá trình kế thừa

Chúng ta có thể sử dụng instanceoftoán tử để kiểm tra xem các đối tượng của lớp con cũng là một thể hiện của lớp cha hay không. Ví dụ,

// Java Program to check if an object of the subclass
// is also an instance of the superclass

// superclass
class Animal {
}

// subclass
class Dog extends Animal {
}

class Main {
  public static void main(String[] args) {

    // create an object of the subclass
    Dog d1 = new Dog();

    // checks if d1 is an instance of the subclass
    System.out.println(d1 instanceof Dog);        // prints true

    // checks if d1 is an instance of the superclass
    System.out.println(d1 instanceof Animal);     // prints true
  }
}

Trong ví dụ trên, chúng ta đã tạo một lớp con Dog kế thừa từ lớp con Animal . Chúng tôi đã tạo một đối tượng d1 của lớp Dog .

Bên trong câu lệnh in, hãy lưu ý biểu thức,

d1 instanceof Animal

Ở đây, chúng tôi đang sử dụng instanceoftoán tử để kiểm tra xem d1 có phải là một thể hiện của lớp cha Animal hay không .

Java instanceof trong giao diện

Các instanceofnhà điều hành cũng được sử dụng để kiểm tra xem một đối tượng của một lớp học cũng là một thể hiện của giao diện cài đặt bởi lớp. Ví dụ,

// Java program to check if an object of a class is also
//  an instance of the interface implemented by the class

interface Animal {
}

class Dog implements Animal {
}

class Main {
  public static void main(String[] args) {

    // create an object of the Dog class
    Dog d1 = new Dog();

    // checks if the object of Dog
    // is also an instance of Animal
    System.out.println(d1 instanceof Animal);  // returns true
  }
}

Trong ví dụ trên, lớp Dog thực hiện giao diện Animal . Bên trong câu lệnh in, hãy lưu ý biểu thức,

d1 instanceof Animal

Ở đây, d1 là một thể hiện của lớp Dog . Các instanceofkiểm tra hành nếu d1 cũng là một thể hiện của giao diện động vật .

Lưu ý : Trong Java, tất cả các lớp được kế thừa từ Objectlớp. Vì vậy, các thể hiện của tất cả các lớp cũng là một thể hiện của Objectlớp.

Trong ví dụ trước, nếu chúng ta kiểm tra,

d1 instanceof Object

Kết quả sẽ là true.









Gõ tìm kiếm nhanh...