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 instanceof
nhà đ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 String
loại và một đối tượng obj của chính lớp.
Ở đây, chúng tôi đã sử dụng các instanceof
nhà điều hành để kiểm tra xem tên và obj là trường hợp của các String
và chính lớp tương ứng. Và, toán tử trả về true
trong cả hai trường hợp.
Lưu ý : Trong Java, String
là 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 instanceof
toá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 instanceof
toá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 instanceof
nhà đ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 instanceof
kiể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ừ Object
lớ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 Object
lớp.
Trong ví dụ trước, nếu chúng ta kiểm tra,
d1 instanceof Object
Kết quả sẽ là true
.