Wednesday, August 19, 2020

Anonymous Class trong Java

 Trong hướng dẫn này, bạn sẽ tìm hiểu về các lớp ẩn danh trong Java với sự trợ giúp của các ví dụ.

Trong Java, một lớp có thể chứa một lớp khác được gọi là lớp lồng nhau. Có thể tạo một lớp lồng nhau mà không cần đặt bất kỳ tên nào.

Một lớp lồng nhau không có bất kỳ tên nào được gọi là lớp ẩn danh.

Anonymous Class trong Java phải được định nghĩa bên trong một lớp khác. Do đó, nó còn được gọi là lớp bên trong ẩn danh. Cú pháp của nó là:

class outerClass {

    // defining anonymous class

    object1 = new Type(parameterList) {

         // body of the anonymous class

    };

}

Các lớp ẩn danh thường mở rộng các lớp con hoặc triển khai các giao diện.

Ở đây, Loại có thể được

  • một lớp cha mà một lớp ẩn danh mở rộng
  • một giao diện mà một lớp ẩn danh triển khai

Đoạn mã trên tạo một đối tượng, object1, của một lớp ẩn danh trong thời gian chạy.

Anonymous Class trong Java


Lưu ý: Các lớp ẩn danh được định nghĩa bên trong một biểu thức. Vì vậy, dấu chấm phẩy được sử dụng ở cuối các lớp ẩn danh để chỉ ra phần cuối của biểu thức. 

Ví dụ 1: Lớp ẩn danh Mở rộng lớp

class Polygon {

   public void display() {

      System.out.println("Inside the Polygon class");

   }

}

class AnonymousDemo {

   public void createClass() {

      // creation of anonymous class extending class Polygon

      Polygon p1 = new Polygon() {

         public void display() {

            System.out.println("Inside an anonymous class.");

         }

      };

      p1.display();

   }

}

class Main {

   public static void main(String[] args) {

       AnonymousDemo an = new AnonymousDemo();

       an.createClass();

   }

}

Kết quả:

Inside an anonymous class.

 Trong ví dụ trên, chúng ta đã tạo một Đa giác lớp. Nó có một phương thức hiển thị duy nhất ().

Sau đó, chúng tôi tạo một lớp ẩn danh mở rộng Polygon lớp và ghi đè phương thức display ().

Khi chúng ta chạy chương trình, một đối tượng p1 của lớp ẩn danh được tạo. Đối tượng sau đó gọi phương thức display () của lớp ẩn danh.

No comments:

Post a Comment