Trừu tượng hóa trong Java

Trừu tượng trong là gì Java?

Trừu tượng là khái niệm về lập trình hướng đối tượng “hiển thị” chỉ các thuộc tính cần thiết và “ẩn” thông tin không cần thiết. Mục đích chính của trừu tượng hóa là ẩn các chi tiết không cần thiết khỏi người dùng. Trừu tượng hóa là chọn dữ liệu từ một nhóm lớn hơn để chỉ hiển thị các chi tiết có liên quan của đối tượng cho người dùng. Nó giúp giảm độ phức tạp và công sức lập trình. Đây là một trong những khái niệm quan trọng nhất của OOP.

Nhấp chuột đây nếu video không thể truy cập được

Hãy nghiên cứu tính trừu tượng trong OOP với ví dụ:

Giả sử bạn muốn tạo một ứng dụng ngân hàng và bạn được yêu cầu thu thập tất cả thông tin về khách hàng của mình. Có khả năng bạn sẽ đưa ra thông tin sau về khách hàng

Trừu tượng hóa trong Java
Trừu tượng hóa trong Java

Nhưng không phải tất cả các thông tin trên đều cần thiết để tạo một ứng dụng ngân hàng. Vì vậy, bạn chỉ cần chọn những thông tin hữu ích cho ứng dụng ngân hàng từ hồ bơi đó. Dữ liệu như tên, địa chỉ, thông tin thuế, v.v. có ý nghĩa đối với ứng dụng ngân hàng là một ví dụ Trừu tượng trong OOP

Trừu tượng hóa trong Java

Vì chúng tôi đã tìm nạp/xóa/chọn thông tin khách hàng từ một nhóm lớn hơn nên quy trình này được gọi là Trừu tượng hóa trong Giáo sư. Tuy nhiên, cùng một thông tin sau khi trích xuất có thể được sử dụng cho nhiều ứng dụng khác nhau. Ví dụ, bạn có thể sử dụng cùng một dữ liệu cho ứng dụng bệnh viện, ứng dụng cổng thông tin việc làm, cơ sở dữ liệu của Chính phủ, v.v. với ít hoặc không cần sửa đổi. Do đó, nó trở thành Dữ liệu chính của bạn. Đây là một lợi thế của Trừu tượng trong OOP.

Sự khác biệt giữa trừu tượng và đóng gói

Trừu tượng Đóng gói
Tính trừu tượng trong lập trình hướng đối tượng giải quyết các vấn đề ở cấp độ thiết kế. Đóng gói giải quyết nó ở mức độ thực hiện.
Trừu tượng hóa trong lập trình là về việc ẩn đi những chi tiết không mong muốn trong khi vẫn hiển thị hầu hết thông tin cần thiết. Đóng gói có nghĩa là ràng buộc mã và dữ liệu vào một đơn vị duy nhất.
Trừu tượng hóa dữ liệu trong Java cho phép tập trung vào những gì đối tượng thông tin phải chứa Đóng gói có nghĩa là ẩn các chi tiết bên trong hoặc cơ chế về cách một đối tượng thực hiện một việc gì đó vì lý do bảo mật.

Sự khác biệt giữa Lớp trừu tượng và Giao diện

Lớp trừu tượng Giao thức
Một lớp trừu tượng có thể có cả phương thức trừu tượng và không trừu tượng. Giao diện chỉ có thể có các phương thức trừu tượng.
Nó không hỗ trợ nhiều kế thừa. Nó hỗ trợ nhiều kế thừa.
Nó có thể cung cấp việc thực hiện giao diện. Nó không thể cung cấp việc triển khai lớp trừu tượng.
Một lớp trừu tượng có thể có các phương thức công khai được bảo vệ và trừu tượng. Một giao diện chỉ có thể có các phương thức trừu tượng công khai.
Một lớp trừu tượng có thể có biến cuối cùng, tĩnh hoặc tĩnh với bất kỳ chỉ định truy cập nào. Giao diện chỉ có thể có biến cuối cùng tĩnh công khai.

Lớp trừu tượng là gì?

LỚP TÓM TẮT là một loại lớp trong Java, khai báo một hoặc nhiều phương thức trừu tượng. Các lớp này có thể có các phương thức trừu tượng cũng như các phương thức cụ thể. Một lớp bình thường không thể có các phương thức trừu tượng. Lớp trừu tượng là lớp chứa ít nhất một phương thức trừu tượng. Chúng ta có thể hiểu khái niệm này bằng ví dụ về hình dạng trong java.

Hãy xem xét hệ thống phân cấp lớp sau đây bao gồm một lớp Shape được kế thừa bởi ba lớp Rectangle, Circle và Triangle. Lớp Shape được tạo ra để lưu các thuộc tính và phương thức chung được chia sẻ bởi ba lớp Rectangle, Circle và Triangle. calculateArea() là một phương thức như vậy được chia sẻ bởi cả ba lớp con và có trong lớp Shape.

Lớp trừu tượng trong Java

Ví dụ trừu tượng về hình dạng

Bây giờ, giả sử bạn viết mã để tạo đối tượng cho các lớp được mô tả ở trên. Chúng ta hãy quan sát những điều này như thế nào các đối tượng sẽ nhìn vào một thế giới thực tế. Một đối tượng của lớp hình chữ nhật sẽ cho một hình chữ nhật, một hình dạng mà chúng ta thường thấy trong cuộc sống hàng ngày.

Lớp trừu tượng

Một đối tượng của lớp tam giác sẽ tạo ra một hình tam giác, cũng là hình dạng phổ biến hàng ngày.

Lớp trừu tượng

Nhưng một đối tượng của Class Shape sẽ trông như thế nào trong thế giới thực tế ??

Lớp trừu tượng

Nếu bạn quan sát thấy lớp Shape giao bóng trong mục tiêu của chúng tôi là đạt được thừa kế và đa hình. Nhưng nó không được xây dựng để khởi tạo. Các lớp như vậy có thể được dán nhãn Tóm tắt. Một lớp java trừu tượng không thể được khởi tạo.

Cú pháp:

abstract class Shape{
	// code
}

Có thể bạn KHÔNG gắn nhãn lớp Hình dạng là Trừu tượng và sau đó khởi tạo nó. Nhưng đối tượng như vậy sẽ không được sử dụng trong mã của bạn và sẽ mở ra cơ hội cho các lỗi tiềm ẩn. Do đó điều này là không mong muốn.

Phương pháp trừu tượng trong Java?

PHƯƠNG PHÁP TÓM TẮT in Java, là một phương thức chỉ có định nghĩa phương thức nhưng không chứa phần triển khai. Một phương thức không có phần thân được gọi là Phương thức trừu tượng. Nó phải được khai báo trong một lớp trừu tượng. Phương thức trừu tượng sẽ không bao giờ là phương thức cuối cùng vì lớp trừu tượng phải triển khai tất cả các phương thức trừu tượng.

Như chúng ta đã biết, công thức tính diện tích hình chữ nhật, hình tròn, hình tam giác là khác nhau. Phương thức tính toánArea() sẽ phải được ghi đè bởi các lớp kế thừa. Thật vô nghĩa khi xác định nó trong lớp Shape, nhưng chúng ta cần đảm bảo rằng tất cả các lớp kế thừa đều có phương thức này.

Những phương pháp như vậy có thể được dán nhãn trừu tượng.

Cú pháp:

abstract public void calculateArea();

Cho một phương pháp trừu tượng, không cần thực hiện. Chỉ có chữ ký của phương thức được xác định.

Ví dụ về mã trừu tượng

abstract class Shape{  
  abstract void calculateArea();  
}  
 class guru99 extends Shape{  
void calculateArea(){System.out.println("Area of Shape");}  
public static void main(String args[]){  
 Shape obj = new guru99();  
 obj.calculateArea();
}  
}

Ưu điểm của Trừu tượng

  • Lợi ích chính của việc sử dụng Trừu tượng trong Lập trình là nó cho phép bạn nhóm một số lớp liên quan lại với nhau thành anh chị em.
  • Tính trừu tượng trong lập trình hướng đối tượng giúp giảm độ phức tạp của quá trình thiết kế và triển khai phần mềm.

Từ khóa cuối cùng trong Java

Công cụ sửa đổi cuối cùng áp dụng cho các lớp, phương thức và biến. Ý nghĩa của từ cuối cùng thay đổi tùy theo ngữ cảnh, nhưng ý tưởng cơ bản là như nhau.

  • Một lớp cuối cùng không thể được kế thừa
  • Biến cuối cùng trở thành hằng số và giá trị của nó không thể thay đổi.
  • Phương thức cuối cùng không thể bị ghi đè. Điều này được thực hiện vì lý do bảo mật và các phương pháp này được sử dụng để tối ưu hóa.

Ví dụ : - Để tìm hiểu các từ khóa trừu tượng và cuối cùng

Bước 1) Sao chép mã sau vào Trình soạn thảo.

abstract class Shape{
   final int b = 20;
   public void display(){
     System.out.println("This is display method");
   }
   abstract public void calculateArea();
}

public class Rectangle extends Shape{
   public static void main(String args[]){
      Rectangle obj = new Rectangle();
      obj.display();
     //obj.b=200;
  }
  //public void calculateArea(){}
}

Bước 2) Lưu, biên dịch và chạy mã.

Bước 3) Lỗi =? Phương thức trừu tượng không được triển khai trong lớp Hình chữ nhật. Để khắc phục sự cố không ghi chú dòng #15.

Bước 4) Dòng bỏ ghi chú #13. Lưu & Biên dịch mã.

Bước 5) Lỗi =? biến b là cuối cùng

Khi nào nên sử dụng Phương thức trừu tượng & Lớp trừu tượng?

Các phương thức trừu tượng hầu hết được khai báo trong đó hai hoặc nhiều lớp con cũng đang thực hiện cùng một việc theo những cách khác nhau thông qua các cách triển khai khác nhau. Nó cũng mở rộng cùng một lớp Trừu tượng và cung cấp các cách triển khai khác nhau của các phương thức trừu tượng.

Các lớp trừu tượng giúp mô tả các loại hành vi chung và phân cấp lớp lập trình hướng đối tượng. Nó cũng mô tả các lớp con để cung cấp thông tin chi tiết về việc triển khai lớp trừu tượng.

Tóm tắt:

  • Tính trừu tượng trong lập trình là quá trình lựa chọn các tập dữ liệu quan trọng cho một Đối tượng trong phần mềm của bạn và loại bỏ những phần không đáng kể.
  • Khi bạn đã lập mô hình đối tượng của mình bằng cách sử dụng Trừu tượng dữ liệu trong Java, cùng một bộ dữ liệu có thể được sử dụng trong các ứng dụng khác nhau.