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é!

Nguyễn Đức Hòa

Xin chào, mình là Nguyễn Đức Hoà, hiện đang đảm nhận vị trí Trưởng phòng kỹ thuật tại LANIT. Với 8 năm kinh nghiệm trong mảng System, Network , Security; mình luôn hướng đến việc tìm kiếm và áp dụng các giải pháp kỹ thuật tiên tiến nhất cho mọi dự án. Công việc của mình không chỉ dừng lại ở việc quản lý mà còn mang đến cho khách hàng những giải pháp lưu trữ dữ liệu tốt nhất hiện nay. Rất hy vọng những kinh nghiệm và chia sẻ của mình sẽ mang lại nhiều giá trị hữu ích cho các bạn.

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