Instanceof là gì? Ví dụ Instanceof Trong Java Dễ Hiểu

Instanceof là gì? Toán tử instanceof trong Java sử dụng như thế nào? Sau đây cùng LANIT tìm hiểu về ví dụ dễ hiểu sau nhé!

Instanceof là gì?

Toán tử instanceof trong Java được sử dụng để kiểm tra xem một đối tượng có thuộc kiểu dữ liệu cụ thể nào đó không (lớp con, lớp hay interface).

Cú pháp: đối_tượng instanceof Kiểu

  • đối_tượng là đối tượng cần kiểm tra.
  • Kiểu là một lớp cụ thể, một giao diện, hoặc một lớp cha.

Instanceof trong Java còn được gọi là toán tử so sánh kiểu bởi nó đối chiếu đối tượng với kiểu dữ liệu và trả về giá trị boolean là true hoặc false. Nếu bạn sử dụng toán tử instanceof trong Java với một biến có giá trị null, kết quả sẽ luôn là false.

Ví dụ sử dụng instanceof trong Java

public class Simple1 {
 public static void main(String args[]) {
  Simple1 s = new Simple1();
  System.out.println(s instanceof Simple1);// true
 }
}

Kết quả

true

Nếu một đối tượng thuộc kiểu của lớp con, thì nó cũng thuộc kiểu của lớp cha tương ứng. Ví dụ, nếu lớp Dog kế thừa từ lớp Animal, thì đối tượng của lớp Dog có thể được tham chiếu đến cả lớp Dog lẫn Animal.

class Animal {}
public class Dog extends Animal {// Dog inherits Animal
 public static void main(String args[]) {
  Dog dog = new Dog();
  System.out.println(dog instanceof Animal);// true
 }
}

Kết quả

true

Ví dụ thực tế Instanceof trong Java

interface InPhuongThuc{}  
class A implements InPhuongThuc{  
  public void phuongThucA(){
    System.out.println(“Phương thức A”);}  

class B implements InPhuongThuc{  
  public void phuongThucB(){
    System.out.println(“Phương thức B”);}  
}  
class GoiPhuongThuc{  
  void goiPhuongThuc(InPhuongThuc inPhuongThuc){ // upcasting  
    if(inPhuongThuc instanceof A){
      A a = (A)inPhuongThuc; // Downcasting   
      a.phuongThucA();  
    }  
    if(inPhuongThuc instanceof B){  
      B b = (B)inPhuongThuc; // Downcasting
      b.phuongThucB();
    } 
  }
} // Kết thúc class GoiPhuongThuc
class Main{  
  public static void main(String args[]){  
    InPhuongThuc inPhuongThuc = new B();
    GoiPhuongThuc goi = new GoiPhuongThuc();
    goi.goiPhuongThuc(inPhuongThuc);
  }  
}

Kết quả

Phương thức B

Để gọi phương thức đúng, chúng ta cần đối tượng đúng. Vì vậy, khi chúng ta thực hiện goi.goiPhuongThuc(ip), cần kiểm tra kiểu của ip. Upcasting được thực hiện để sử dụng như một tham chiếu kiểm tra. Nếu kiểm tra cho thấy đối tượng là thể hiện của một class cụ thể, chúng ta thực hiện downcasting để gọi phương thức tương ứng với class đó.

Kết luận

Trên đây là thông tin về toán tử Instanceof trong Java và ví dụ cụ thể, LANIT hy vọng bạn đã nắm được cơ bản cách sử dụng toán tử này. Nếu có thắc mắc hay nhận xét hãy để lại ở phần bình luận phía dưới, LANIT rất mong nhận được phản hồi để cải thiện bài viết tốt hơn. Đừng quên theo dõi để cập nhiều nội dung công nghệ mới bạn nhé!

avata Hải

Triệu Huyền Trang

Triệu Huyền Trang chuyên gia 3 năm kinh nghiệm trong ngành Công Nghệ, Phần Mềm. Chuyên chia sẻ các kiến thức phần mềm mã nguồn, ứng dụng và thông tin về công nghệ hữu ích.

Chat với chúng tôi qua Zalo!
Chat với chúng tôi qua Zalo!