toán tử instanceof

Mô-đun 2: Lõi Java
Mức độ , Bài học
Có sẵn

"Xin chào, Amigo! Bạn đã gặp toán tử instanceof . Hôm nay tôi sẽ cho bạn biết nó có thể được sử dụng như thế nào và ở đâu. instanceof là một toán tử rất đơn giản và hiệu quả."

"Điều đó nghe giống như một quảng cáo!"

"Nó thực sự rất đơn giản. Nó được sử dụng như thế này: «đối tượng» thể hiện của «lớp» ."

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 cụ thể hay không. Nó dễ dàng hơn là giải thích nó. Nhìn vào ví dụ này:

Mã số Sự miêu tả
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt sẽ là true . Đối tượng được tham chiếu bởi biến o là một thể hiện của lớp Integer .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt sẽ là sai . Đối tượng được tham chiếu bởi biến o không phải là một thể hiện của lớp Số nguyên . Nó là một đối tượng Chuỗi .
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS sẽ là true . Đối tượng được tham chiếu bởi biến o là một thể hiện của lớp FileInputStream .

"Ừ, cái đó rất đơn giản."

"Toán tử này cũng chiếm quyền thừa kế. Kiểm tra xem."

Mã số Sự miêu tả
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Ở đây chúng ta có ba khai báo lớp: Animal, Cat và Tiger. Mèo kế thừa Thú. Còn Hổ kế thừa Cát.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  sẽ là  true .
isTiger  sẽ là  true .
isAnimal  sẽ là  true .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  sẽ là sai .
isTiger  sẽ là  sai .
isAnimal  sẽ là  true .

Và thậm chí cả giao diện:

Mã số Sự miêu tả
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Tạo hai lớp: Cat, TomCat và giao diện Moveable
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  sẽ là  true .
isMoveable  sẽ là  true .
isTom  sẽ là  true .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  sẽ là  true .
isMoveable  sẽ là  sai .
isTom  sẽ là  sai .

Toán tử instanceof có dạng như sau: a instanceof B .

Nói cách khác, toán tử instanceof sẽ trả về true nếu:

1) biến a lưu trữ tham chiếu đến đối tượng loại B

2)  biến a lưu tham chiếu đến một đối tượng có lớp kế thừa  B

3)  biến a lưu trữ tham chiếu đến đối tượng thực hiện giao diện  B

Nếu không, toán tử instanceof sẽ trả về false .

"Hiểu rồi. Vậy tại sao điều này lại cần thiết, chú Rishi?"

"Ellie sẽ kể cho bạn nghe về điều đó hôm nay. Đây là một nhà điều hành thực sự tốt. Hôm nay bạn sẽ bị thuyết phục về điều đó."

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION