Toán tử instanceof trong Java so sánh một thể hiện của biến tham chiếu với kiểu lớp, kiểu lớp con hoặc kiểu giao diện. Java instanceof cũng được gọi là "toán tử so sánh kiểu" vì nó so sánh kiểu của một đối tượng với kiểu được chỉ định. Nếu đối tượng được coi là cùng kiểu với kiểu chỉ định, kết quả sẽ là true, ngược lại sẽ là false.
Bài viết này sẽ giới thiệu cách hoạt động và cách sử dụng toán tử instanceof trong Java. Ngoài ra, các mục tiêu học tập sau đây sẽ được trình bày.
Cách hoạt động của toán tử Java instanceof
Toán tử Java instanceof hoạt động theo mô hình "là-một" ("is-a"). Việc kiểm tra "là-một" cũng được mô tả là "đối tượng là một kiểu lớp". Cách hoạt động của toán tử instanceof phụ thuộc vào cú pháp sau:
biến_tham_chiếu instanceof TênLớp;
Toán tử instanceof chỉ hoạt động với biến tham chiếu. Trong Java, biến có thể thuộc loại "nguyên thủy" hoặc "tham chiếu". Biến tham chiếu trỏ đến một đối tượng trong bộ nhớ. Toán tử instanceof trả về một giá trị boolean.
Cách sử dụng toán tử Java instanceof
Toán tử instanceof trong Java có nhiều ứng dụng khác nhau. Nó có thể được sử dụng để lấy thể hiện của các đối tượng của một lớp, tức là thể hiện của bất kỳ biến nào. Trong phần này, chúng ta sẽ xem xét các trường hợp sử dụng khác nhau của toán tử instanceof trong Java.
Kiểm tra xem một mảng có thuộc kiểu lớp Array không?
Java cung cấp các lớp tích hợp để tham chiếu đến các mảng. Lớp java.lang.Object
của Java liên quan đến các mảng. Trong đoạn mã dưới đây, chúng ta sẽ triển khai toán tử instanceof trên các mảng.
int[] arr = {1, 2, 3};
System.out.println(arr instanceof java.lang.Object);
Trong đoạn mã trên:
- Một mảng (
arr
) được khởi tạo với các giá trị Integer. - Toán tử instanceof được sử dụng để kiểm tra thể hiện của
arr
có thuộc kiểujava.lang.Object
hay không.
Kết quả đầu ra
Toán tử instanceof đã trả về giá trị true, cho thấy biến arr
thuộc lớp java.lang.Object
.
Lưu ý: Thay vì sử dụng java.lang.Object
, bạn cũng có thể sử dụng chỉ Object
để thực hiện cùng một quy trình. Ngoài ra, một biến String cũng có thể được so sánh với java.lang.String
bằng cách sử dụng toán tử thể hiện.
Kiểm tra xem một đối tượng có phải là một thể hiện của một lớp không?
Trong đoạn mã dưới đây, toán tử instanceof được sử dụng để so sánh kiểu của đối tượng với lớp.
InstOf obj = new InstOf();
System.out.println(obj instanceof InstOf);
Trong đoạn mã trên:
- Một đối tượng (
obj
) của lớp (InstOf
) được tạo ra. - Toán tử instanceof được sử dụng để kiểm tra xem
obj
có phải là một thể hiện củaInstOf
hay không.
Kết quả đầu ra
Toán tử instanceof đã trả về giá trị true, cho thấy obj
là một thể hiện của lớp InstOf
.
Kiểm tra thể hiện của đối tượng trong một lớp được kế thừa?
Việc kế thừa trong Java được áp dụng để kiểm tra cách một thể hiện hoạt động trong một lớp được kế thừa.
class Beispiel {}
public class InOf extends Beispiel {
public static void main(String[] args) {
InOf obj = new InOf();
// Kiểm tra xem nó có phải là một phần của lớp con không
System.out.println(obj instanceof InOf);
// Kiểm tra xem nó có phải là phần của lớp cha không
System.out.println(obj instanceof Beispiel);
}
}
Trong đoạn mã trên:
- Lớp
InOf
mở rộng lớpBeispiel
. - Một đối tượng của lớp
InOf
được tạo ra. - Toán tử instanceof được sử dụng để kiểm tra thể hiện của
obj
với các lớp cha và lớp con.
Kết quả đầu ra
Kết quả của toán tử instanceof là true, cho thấy đối tượng của lớp InOf
(lớp con) có thể được truy cập từ các lớp cha và con.
Kiểm tra thể hiện của đối tượng trong một lớp được kế thừa?
Csử dụng toán tử instanceof trong một đối tượng null.
InstOf obj1 = null;
System.out.println(obj1 instanceof InstOf);
Chúng ta tạo một đối tượng của lớp InOf với giá trị null. Sau đó, toán tử instanceof được áp dụng để so sánh kiểu của một đối tượng với lớp.
Lưu ý: obj1
là một biến lớp, vì phải sử dụng hàm tạo của lớp Java để khởi tạo đối tượng.
Kết quả đầu ra
Kết quả cho thấy một đối tượng null không thể được sử dụng để so sánh kiểu với một lớp. Kết quả là "false".
Tổng kết: Toán tử instanceof trong Java
Toán tử instanceof trong Java được sử dụng để so sánh kiểu của một đối tượng với lớp, lớp con và giao diện của nó. Trong bài viết này, chúng tôi đã cung cấp một cái nhìn tổng quan về toán tử instanceof trong Java. Toán tử này có thể được sử dụng để so sánh một chuỗi, một mảng Java và các lớp tiêu chuẩn của Java. Các ví dụ khác nhau đã được cung cấp để minh họa cách sử dụng instanceof.