Sự khác biệt giữa Gói và Giao diện trong Java

Các sự khác biệt chính giữa Gói và Giao diện trong Java là thế Gói giúp phân loại các lớp một cách có phương pháp để truy cập và duy trì chúng dễ dàng trong khi Giao diện giúp thực hiện nhiều kế thừa và để đạt được sự trừu tượng hóa.

Java là một trong những ngôn ngữ lập trình phổ biến nhất. Ưu điểm chính của Java là nó hỗ trợ Lập trình hướng đối tượng. Phương pháp này cho phép mô hình hóa các đối tượng trong thế giới thực trong phần mềm. Một lớp là một kế hoạch chi tiết để tạo ra một đối tượng. Mỗi đối tượng chứa dữ liệu hoặc các trường để mô tả các thuộc tính hoặc các thuộc tính và phương thức để mô tả các hành vi. Bài viết này thảo luận về hai khái niệm liên quan đến OOP trong Java trong Java là Gói và Giao diện.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Gói trong Java là gì
3. Giao diện trong Java là gì
4. So sánh cạnh nhau - Gói so với giao diện trong Java ở dạng bảng
5. Tóm tắt

Gói trong Java là gì?

Java cung cấp một số lượng lớn các lớp. Giữ tất cả các lớp trong một thư mục có thể khó khăn vì khó truy cập. Điều này có thể ảnh hưởng đến khả năng quản lý chương trình. Java sử dụng các gói để sắp xếp các lớp. Nó tương tự như một thư mục. Các nhóm API Java thành các gói khác nhau theo chức năng. Do đó, mỗi gói chứa một tập hợp các lớp liên quan.

Ví dụ về các gói trong Java

Vài gói ví dụ như sau. Gói java.io chứa các lớp hỗ trợ đầu vào, đầu ra. Nó bao gồm File, PrintStream, BufferInputStream, v.v ... Gói java.net chứa các lớp liên quan đến mạng. Một số ví dụ là URL, Ổ cắm, Máy chủ. Gói java.awt chứa tất cả các lớp cần thiết để xây dựng Giao diện người dùng đồ họa. Đó là vài gói API Java.

Khi lập trình viên muốn sử dụng một lớp nhất định trong chương trình, anh ta nên nhập gói đó. Nếu lập trình viên muốn sử dụng lớp BufferInputStream trong gói java.io, anh ta nên viết câu lệnh nhập như sau.

nhập java.util.BufferInoutStream;

Câu lệnh dưới đây sẽ nhập tất cả các lớp trong gói produc.

nhập java.util. *;

Cũng có thể tạo các gói do người dùng xác định.

nhân viên trọn gói;

lớp nhân viên

Theo ví dụ trên, nhân viên là tên gói. Lớp nhân viên là một phần của gói nhân viên. Tệp này lưu dưới dạng Employee.java vào gói nhân viên.

Hơn nữa, có thể nhập một lớp công khai từ gói này sang gói khác. Tham khảo ví dụ sau.

Hình 01: Lớp A

Hình 02: Lớp B

Lớp A nằm trong gói 1 và nó chứa phương thức chung gọi là display. Lớp B nằm trong gói 2 và nó chứa phương thức chính. Mặc dù chúng nằm trong các gói riêng biệt; lớp B có thể tạo một đối tượng của lớp A bằng cách nhập gói1. Sau khi nhập gói 1, lớp B có quyền truy cập vào dữ liệu và phương thức của lớp A.

Nhìn chung, Gói trong Java giúp tổ chức các tệp dự án. Điều này rất hữu ích khi phát triển hệ thống lớn vì nó cho phép lưu trữ tất cả các tệp theo phương pháp. Ngoài ra, các gói API Java cho phép các lập trình viên sử dụng các lớp đã có sẵn.

Giao diện trong Java là gì?

Đôi khi lập trình viên có thể không biết định nghĩa của phương thức. Trong tình huống này, lập trình viên chỉ có thể khai báo phương thức. Một phương thức trừu tượng là một phương thức không có định nghĩa. Nó chỉ có tuyên bố. Khi có ít nhất một phương thức trừu tượng, lớp đó trở thành một lớp trừu tượng. Hơn nữa, lớp trừu tượng có thể chứa các phương thức trừu tượng cũng như các phương thức không trừu tượng. Lập trình viên không thể tạo các đối tượng trong các lớp trừu tượng.

Khi một lớp mở rộng một lớp trừu tượng, lớp mới sẽ định nghĩa tất cả các phương thức trừu tượng trong lớp trừu tượng. Nói cách khác, giả sử rằng lớp trừu tượng A có một phương thức trừu tượng gọi là display. Lớp B mở rộng lớp A. Sau đó, lớp B sẽ xác định hiển thị phương thức.

Ví dụ về giao diện trong Java

Giả sử rằng cả A và B là các lớp trừu tượng. Nếu lớp C đang mở rộng A và B, lớp C đó phải xác định các phương thức trừu tượng của cả hai lớp. Đây là nhiều thừa kế. Java không hỗ trợ nhiều kế thừa. Để thực hiện nó, lập trình viên nên sử dụng giao diện. Nếu A và B là các giao diện, thì lớp C có thể thực hiện chúng. Tham khảo ví dụ sau.

Hình 03: Giao diện A

Hình 04: Giao diện B

Giao diện A có phương thức trừu tượng display1 và giao diện B có phương thức trừu tượng display2.

Hình 05: Lớp C

Lớp C thực hiện cả giao diện A và B. Do đó, cần xác định cả hai phương thức.

Hình 06: Phương thức chính

Bây giờ trong phương thức chính, có thể tạo một đối tượng của C và gọi cả hai phương thức. Tương tự, các giao diện giúp triển khai nhiều kế thừa trong Java.

Khác với nhiều kế thừa, giao diện giúp đạt được sự trừu tượng. Đây là một khái niệm chính trong OOP. Trừu tượng cho phép ẩn chi tiết thực hiện và chỉ hiển thị chức năng cho người dùng. Hơn nữa, nó cho phép tập trung vào những gì đối tượng làm thay vì cách nó được thực hiện. Là một giao diện bao gồm các phương thức trừu tượng, nó giúp lưu trữ sự trừu tượng hóa.

Sự khác biệt giữa Gói và Giao diện trong Java là gì?

Gói là một nhóm các lớp liên quan cung cấp bảo vệ truy cập và quản lý không gian tên. Giao diện là một kiểu tham chiếu tương tự như lớp là tập hợp các phương thức trừu tượng. Gói giúp phân loại các lớp một cách có phương pháp để truy cập và duy trì chúng dễ dàng. Mặt khác, Giao diện giúp thực hiện nhiều kế thừa và để đạt được sự trừu tượng hóa. Đây là sự khác biệt chính giữa Gói và Giao diện trong Java. Hơn nữa, cách để viết một gói là các chữ cái viết thường như java.util, java.awt. Nếu tên của giao diện là Area, thì nó được ghi vào, Area interface.

Tóm tắt - Gói vs Giao diện trong Java

Sự khác biệt giữa Gói và Giao diện trong Java là Gói giúp phân loại các lớp một cách có phương pháp để truy cập và duy trì chúng dễ dàng trong khi Giao diện giúp thực hiện nhiều kế thừa và để đạt được sự trừu tượng hóa.

Tài liệu tham khảo:

1. Điểm hướng dẫn. Gói Java Java. Điểm hướng dẫn, ngày 24 tháng 3 năm 2018. Có sẵn tại đây 
2. Điểm hướng dẫn. Giao diện Java Java. Điểm hướng dẫn, ngày 24 tháng 3 năm 2018. Có sẵn tại đây