Đề XuấT, 2024

Editor Choice

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

Gói và Giao diện cả hai hoạt động như một container. Nội dung trong các gói và giao diện có thể được các lớp sử dụng bằng cách nhập và triển khai nó tương ứng. Sự khác biệt cơ bản giữa các gói và giao diện là một gói chứa một nhóm các lớp và giao diện trong khi đó, một giao diện chứa các phương thức và trường. Chúng ta hãy nghiên cứu một số khác biệt với sự giúp đỡ của biểu đồ so sánh.

Biểu đồ so sánh

Cơ sở để so sánhGóiGiao diện
Căn bảnGói là một nhóm các lớp và / hoặc giao diện với nhau.Giao diện là một nhóm các phương thức trừu tượng và các trường không đổi.
Từ khóaCác gói được tạo bằng cách sử dụng từ khóa "Gói".Giao diện được tạo bằng từ khóa "Giao diện".
Cú phápgói gói_name;
lớp công khai class_name {
.
(cơ thể của lớp)
.
}
giao diện interface_name {
sự định nghĩa biến;
khai báo phương pháp;
}
Truy cậpMột gói có thể được nhập khẩuMột giao diện có thể được mở rộng bởi một giao diện khác và được lớp thực hiện.
Từ khóa truy cậpCác gói có thể được nhập bằng cách sử dụng từ khóa "nhập".Các giao diện có thể được thực hiện bằng cách sử dụng từ khóa "hiện thực".

Định nghĩa các gói

Các gói là tập hợp hoặc nhóm của sự đa dạng của các lớp và giao diện. Các lớp trong các gói có liên quan với nhau trong một số phạm vi hoặc theo kế thừa. Bạn cũng có thể tạo gói của bạn và sử dụng nó cho chương trình của bạn.

Tạo một gói

Để tạo một gói chỉ cần làm theo các bước sau.

  1. Mở một tệp và sau đó khai báo tên của gói ở đầu tệp, như [gói pack_name; ] tên gói là tên bạn muốn đặt cho gói.
  2. Tiếp theo, bạn định nghĩa một lớp mà bạn muốn đặt trong gói và nhớ rằng bạn khai báo nó công khai.
  3. Lưu tệp dưới dạng tệp .java và sau đó biên dịch tệp, sau đó có thể đạt được.
  4. Để tạo một gói cho tập tin này, lệnh được sử dụng là Java javac -d. file_name.java. Bạn có thể thấy rằng gói được tạo có chứa một tập tin. Class. Trong thư mục hiện tại. Để đặt nó trong thư mục cha mẹ, hãy sử dụng jav javac -d. . lệnh file_name.java.
  5. Bạn cũng có thể tạo một gói con bằng cách khai báo tên của gói con là [gói pack_name1. gói_name2; ] ở đầu tập tin.
 gói Mypackage; lớp công khai my class {public void displayMypackage () {system.out.println ("phương thức displayMypackage của lớp mygroup của gói Mypackage"); } 

Sử dụng gói

Các gói được tạo hoặc có sẵn trong thư mục có thể được sử dụng trong chương trình bằng cách sử dụng câu lệnh nhập. Từ khóa được sử dụng để nhập bất kỳ gói nào trong chương trình của bạn là nhập khẩu. Câu lệnh nhập có thể được viết theo hai cách hoặc bạn có thể nói rằng có hai cách để truy cập bất kỳ gói nào. Đầu tiên, nếu bạn muốn sử dụng một lớp cụ thể từ một gói, từ khóa Nhập khẩu trực tiếp được theo sau bởi tên gói tiếp theo là toán tử dấu chấm và tên lớp mà bạn muốn sử dụng từ gói. Thứ hai, nếu bạn muốn sử dụng nhiều lớp được chứa trong các gói, thì từ khóa nhập được theo sau bởi tên gói tiếp theo là dấu chấm và toán tử điều hành * *.

 nhập gói_name. tên lớp; hoặc nhập gói_name. *; 

Trong đoạn mã trên, bạn có thể thấy dấu * cho biết phương thức thứ hai nhập tất cả các lớp có trong các gói.

Bây giờ, hãy xem việc sử dụng gói với một ví dụ.

 nhập Mypackage. mygroup {class TestMypackage {public static void main (string args []) {mygroup ob1 = new mygroup (); ob1.displayMypackage (); }} // phương thức đầu ra displayMypackage của lớp mygroup của gói Mypackage. 

Trong đoạn mã trên, lớp TestMypackage đã nhập gói Mypackage và sử dụng phương thức displayMypackage () của nó.

Định nghĩa giao diện

Giao diện là một loại của một lớp, nhưng, khác nhau theo nghĩa là các phương thức được khai báo trong giao diện là trừu tượng có nghĩa là các phương thức chỉ được khai báo nhưng không được định nghĩa. Các trường trong giao diện luôn công khai, tĩnh, cuối cùng. Các trường phải được khởi tạo tại thời điểm khai báo. Các phương thức được khai báo bởi giao diện được xác định bởi lớp thực hiện giao diện đó theo yêu cầu của nó. Vì các phương thức trong giao diện không thực hiện bất kỳ chức năng nào, do đó không có việc sử dụng bất kỳ đối tượng nào của giao diện. Do đó, không có đối tượng nào có thể được tạo cho giao diện.

Giao diện cũng có thể kế thừa giao diện khác, nhưng lớp kế thừa giao diện đó cũng phải thực hiện tất cả các phương thức của giao diện được kế thừa. Vì các trường được khởi tạo tại thời điểm khai báo trong giao diện, do đó không cần đến hàm tạo trong giao diện, do đó giao diện không chứa bất kỳ hàm tạo nào. Hãy xem ví dụ về việc tạo và sử dụng giao diện.

 diện tích giao diện {float pi = 3.14; float find_area (float a, float b) {} class Circle thực hiện Area {float find_area (float a, float b) {return (pi * a * a); } Hình dạng lớp {public static void main (string args []) {Area A = new Area (); Vòng tròn C = vòng tròn mới (); A = C; phao F = Diện tích. find_area (10, 10); system.out.println ("Diện tích của vòng tròn là:" + F); } 

Trong đoạn mã trên, chúng tôi đã tạo ra Vùng giao diện và Vòng tròn lớp đã triển khai Vùng giao diện. Trường ăn pi pi đã được khởi tạo trong giao diện tại thời điểm khai báo. Vòng tròn lớp đã định nghĩa phương thức trừu tượng của vùng lớp theo yêu cầu của nó.

Sự khác biệt chính giữa các gói và giao diện trong Java

  1. Một gói là một nhóm các lớp và giao diện với nhau trong khi đó, một giao diện là một nhóm các phương thức trừu tượng.
  2. Gói được tạo bằng gói từ khóa trong khi đó, giao diện được tạo bằng giao diện từ khóa.
  3. Nếu một lớp hoặc một giao diện bên trong một gói sẽ được sử dụng thì gói đó sẽ được nhập trong khi một giao diện phải được thực hiện.

Phần kết luận:

Cả hai gói và giao diện là các container. Gói làm giảm kích thước của mã khi chúng ta chỉ nhập lớp sẽ được sử dụng thay vì xác định lại nó. Trong khi đó giao diện làm giảm sự nhầm lẫn xảy ra trong khi nhiều kế thừa bởi vì trong trường hợp có nhiều kế thừa, lớp kế thừa không quyết định định nghĩa về phương thức nào nên kế thừa thay vì định nghĩa phương thức nào.

Top