Các gói trong Java: Cách tạo và sử dụng các gói trong Java?



Bài viết này về các gói trong java sẽ giúp bạn hiểu gói là gì, cách tạo và sử dụng chúng trong Java để trở thành lập trình viên java hiệu quả.

Một trong những sáng tạo nhất là khái niệm về gói.Các gói trong Java là một cách để đóng gói một nhóm các lớp, giao diện, kiểu liệt kê, chú thích và gói con. Về mặt khái niệm, bạn có thể coi các gói java tương tự như các thư mục khác nhau trên máy tính của bạn. Trong hướng dẫn này, chúng tôi sẽ trình bày những điều cơ bản về các gói trong

Dưới đây là các chủ đề được đề cập trong bài viết này:





Gói trong Java là gì?

Gói Java là một cơ chế nhóm các loại lớp, giao diện và lớp con tương tự lại với nhau dựa trên chức năng. Khi phần mềm được viết trong , nó có thể bao gồm hàng trăm hoặc thậm chí hàng nghìn lớp riêng lẻ. Tôit có ý nghĩa để giữ mọi thứ có tổ chức bằng cách đặt các lớp và giao diện liên quan vào các gói.

Sử dụng các gói trong khi viết mã mang lại rất nhiều lợi ích như:



    • Khả năng sử dụng lại: Các lớp có trong các gói của chương trình khác có thể dễ dàng sử dụng lại
    • Xung đột tên: Các góigiúp chúng tôi xác định duy nhất một lớp, chẳng hạn như chúng tôi có thể có company.sales.E Employeecompany.marketing.E Employee các lớp học
    • Truy cập có Kiểm soát: Ưu đãi bảo vệ truy cập chẳng hạn như plớp rotected, lớp mặc định và lớp riêng
    • Đóng gói dữ liệu : Họ ptìm cách ẩn các lớp, ngăn các chương trình khác truy cập vào các lớp chỉ dành cho mục đích sử dụng nội bộ
    • Bảo trì: Với các gói,bạn có thể tổ chức dự án của mình tốt hơn và dễ dàng định vị các lớp liên quan

Bạn nên sử dụng các gói trong khi viết mã bằng Java. Là một lập trình viên, bạn có thểdễ dàng tìm ra , giao diện, bảng liệt kê và chú thích có liên quan. Chúng tôi có hai loại gói trong java.

Các loại gói trong Java

Dựa trên việc gói có được xác định bởi người dùng hay không, các gói được chia thành hai loại:

  1. Gói tích hợp
  2. Gói do người dùng xác định

Gói tích hợp

Các gói tích hợp sẵn hoặc các gói được xác định trước là những gói đi kèm như một phần của (Bộ phát triển Java) để đơn giản hóa nhiệm vụ của lập trình viên Java. Chúng bao gồm một số lượng lớn các lớp và giao diện được xác định trước là một phần của Java API. Một số gói tích hợp thường được sử dụng là java.lang, java.io, java.util, java.applet, v.v. Đây là một chương trình đơn giản sử dụng gói tích hợp sẵn.



package Edureka import java.util.ArrayList class BuiltInPackage {public static void main (String [] args) {ArrayList myList = new ArrayList (3) myList.add (3) myList.add (2) myList.add (1) System. out.println ('Các phần tử của danh sách là:' + myList)}}

Đầu ra:

Các phần tử của danh sách là: [3, 2, 1]

Lớp ArrayList thuộc gói java.util. Để sử dụng nó, chúng ta phải nhập gói bằng câu lệnh nhập. Dòng đầu tiên của mã nhập java.util.ArrayList nhập gói java.util và sử dụng có trong gói phụ sử dụng.

Gói do người dùng xác định

Các gói do người dùng định nghĩa là những gói được phát triển bởi người dùng để nhóm các lớp, giao diện và gói con có liên quan. Với sự trợ giúp của chương trình ví dụ, hãy xem cách tạo các gói, biên dịch các chương trình Java bên trong các gói và thực thi chúng.

Tạo một gói trong Java

Tạo một gói trong Java là một nhiệm vụ rất dễ dàng. Chọn tên cho gói và bao gồm gói hàng lệnh dưới dạng câu lệnh đầu tiên trong tệp nguồn Java. Tệp nguồn java có thể chứa các lớp, giao diện, liệt kê và các loại chú thích mà bạn muốn đưa vào gói.Ví dụ: câu lệnh sau tạo một gói có tên MyPackage.

c ++ fibonacci đệ quy
gói MyPackage

Câu lệnh gói chỉ đơn giản chỉ định gói mà các lớp được định nghĩa thuộc về ..

Ghi chú: Nếu bạn bỏ qua câu lệnh gói, tên lớp sẽ được đưa vào gói mặc định không có tên. Mặc dù gói mặc định là tốt cho các chương trình ngắn, nhưng nó không đủ cho các ứng dụng thực.

Bao gồm một lớp trong gói Java

Đếntạo một lớp bên trong một gói, bạn nênkhai báo tên gói là câu lệnh đầu tiên của chương trình của bạn. Sau đó, bao gồm lớp như một phần của gói. Nhưng, hãy nhớ rằng, một lớp chỉ có thể có một khai báo gói. Đây là một chương trình đơn giản để hiểu khái niệm.

package MyPackage public class Compare {int num1, num2 Compare (int n, int m) {num1 = n num2 = m} public void getmax () {if (num1> num2) {System.out.println ('Giá trị lớn nhất của hai number is '+ num1)} else {System.out.println (' Giá trị lớn nhất của hai số là '+ num2)}} public static void main (String args []) {So sánh current [] = new So sánh [3] hiện tại [1] = new Compare (5, 10) current [2] = new Compare (123, 120) for (int i = 1 i<3 i++) { current[i].getmax() } } } 

Đầu ra:

Giá trị lớn nhất của hai số là 10 Giá trị lớn nhất của hai số là 123

Như bạn thấy, tôi đã khai báo một gói có tên MyPackage và tạo một lớp So sánh bên trong gói đó. Java sử dụng các thư mục hệ thống tệp để lưu trữ các gói. Vì vậy, chương trình này sẽ được lưu trong một tệp dưới dạng Compare.java và sẽ được lưu trữ trong thư mục có tên MyPackage. Khi tệp được biên dịch, Java sẽ tạo .lớp học và lưu trữ nó trong cùng một thư mục. Hãy nhớ rằng tên của gói phải giống với thư mục mà tệp này được lưu.

Bạn có thể tự hỏi làm thế nào để sử dụng lớp So sánh này từ một lớp trong gói khác?

Tạo một lớp bên trong gói trong khi nhập một gói khác

Nó khá đơn giản. Bạn chỉ cần nhập nó. Sau khi nó được nhập, bạn có thể truy cập nó bằng tên của nó. Đây là một chương trình mẫu trình bày khái niệm.

package Edureka import MyPackage.Compare public class Demo {public static void main (String args []) {int n = 10, m = 10 So sánh current = new So sánh (n, m) if (n! = m) {current.getmax ()} else {System.out.println ('Cả hai giá trị đều giống nhau')}}}

Đầu ra:

Cả hai giá trị đều giống nhau

Tôi đã khai báo gói đầu tiên Edureka , sau đó nhập lớp Đối chiếu từ gói MyPackage. Vì vậy, đơn đặt hàngkhi chúng tôi tạo một lớp bên trong một gói trong khi nhập một gói khác,

  • Khai báo gói hàng
  • Nhập gói

Vâng, nếu bạn không muốn sử dụng câu lệnh nhập, có một cách khác để truy cập tệp lớp của gói từ một gói khác. Bạn chỉ có thể sử dụng tên đủ điều kiện trong khi nhập .

Sử dụng tên đủ điều kiện trong khi nhập một lớp

Dưới đây là một ví dụ để hiểu khái niệm này. Tôi sẽ sử dụng cùng một gói mà tôi đã khai báo trước đó trong blog, MyPackage .

package Edureka public class Demo {public static void main (String args []) {int n = 10, m = 11 // Sử dụng tên đủ điều kiện thay vì nhập MyPackage.Compare current = new MyPackage.Compare (n, m) if ( n! = m) {current.getmax ()} else {System.out.println ('Cả hai giá trị đều giống nhau')}}}

Đầu ra:

Giá trị lớn nhất của hai số là 11

Trong lớp Demo, thay vì nhập gói, tôi đã sử dụng tên đủ điều kiện như MyPackage.Compare để tạo đối tượng của nó. Vì chúng ta đang nói về nhập các gói, bạn cũng có thể kiểm tra khái niệm nhập tĩnh trong Java.

Nhập tĩnh trong Java

Tính năng nhập tĩnh đã được giới thiệu trong từ phiên bản 5. Nó tạo điều kiện cho lập trình viên Java truy cập vào bất kỳthành viên của lớp trực tiếp mà không sử dụng tên đủ điều kiện.

package MyPackage import static java.lang.Math. * // static import import static java.lang.System. * // static import public class StaticImportDemo {public static void main (String args []) {double val = 64.0 double sqroot = sqrt (val) // Truy cập trực tiếp phương thức sqrt () out.println ('Sq. root of' + val + 'is' + sqroot) // Chúng ta không cần sử dụng 'System.out}}
 Đầu ra: 
Sq. gốc của 64.0 là 8.0

Mặc dù sử dụng nhập tĩnh ít liên quan đến việc mã hóa hơn, nhưng việc lạm dụng nó có thể khiến chương trình không thể đọc được và không thể hiểu được. Bây giờ chúng ta hãy chuyển sang chủ đề tiếp theo, kiểm soát quyền truy cập trong các gói.

Bảo vệ quyền truy cập trong các gói Java

Bạn có thể biết các khía cạnh khác nhau của cơ chế kiểm soát truy cập của Java và truy cập thông số . Các gói trong Java thêm một thứ nguyên khác để kiểm soát truy cập. Cả hai lớp và gói đều là phương tiện của Đóng gói dữ liệu . Trong khi các gói đóng vai trò là vùng chứa cho các lớp và các gói cấp dưới khác, các lớp đóng vai trò là vùng chứa cho dữ liệu và mã. Do tác động qua lại giữa các gói và lớp, các gói Java giải quyết bốn loại khả năng hiển thị cho các thành viên lớp:

  • Các lớp con trong cùng một gói
  • Không phải lớp con trong cùng một gói
  • Các lớp con trong các gói khác nhau
  • Các lớp không nằm trong cùng một gói cũng như các lớp con

Bảng dưới đây chohình ảnh thực tế về kiểu truy cập có thể và không khi sử dụng các gói trong Java:

Riêng tư Không có bổ trợ Được bảo vệ Công cộng

Cùng lớp

Đúng

Đúng

Đúng

Đúng

con rối vs đầu bếp vs jenkins

Các lớp con cùng gói

Không

Đúng

Đúng

Đúng

Cùng một gói không phải lớp con

Không

Đúng

Đúng

hashmap và hashtable trong java là gì

Đúng

Các gói con khác nhau

Không

Không

Đúng

Đúng

Các gói khác nhau không phải là lớp con

Không

Không

Không

Đúng

Chúng ta có thể đơn giản hóa dữ liệu trong bảng trên như sau:

  1. Mọi thứ được khai báo công khai đều có thể được truy cập từ mọi nơi
  2. Mọi thứ được khai báo là private chỉ có thể được xem trong lớp đó
  3. Nếu chỉ định truy cập không được đề cập, một phần tử sẽ hiển thị với các lớp con cũng như các lớp khác trong cùng một gói
  4. Cuối cùng, bất kỳ phần tử bảo vệ nào đã khai báo đều có thể được nhìn thấy bên ngoài gói hiện tại của bạn, nhưng chỉ với các lớp trực tiếp phân lớp lớp của bạn

Bằng cách này, các gói Java cung cấp quyền kiểm soát truy cập cho các lớp. Điều này tóm tắt khái niệm về các gói trong Java. Dưới đây là một số điểm bạn cần lưu ý khi sử dụng các gói trong .

Những điểm cần nhớ

  • Mỗi lớp là một phần của một số gói. Nếu bạn bỏ qua câu lệnh gói, tên lớp sẽ được đưa vào gói mặc định
  • Một lớp chỉ có thể có một câu lệnh gói nhưng nó có thể có nhiều câu lệnh gói nhập
  • Tên của gói phải giống với thư mục mà tệp được lưu
  • Khi nhập một gói khác, khai báo gói phải là câu lệnh đầu tiên, tiếp theo là nhập gói

Vâng, điều này sẽ đưa chúng ta đến phần cuối của bài viết ‘Các gói trong Java’ này. Chúng tôi đã họcgói là gì và tại sao chúng ta nên sử dụng chúng. Không còn nghi ngờ gì nữa, gói Java là một trong những phần quan trọng nhất đối với các lập trình viên java hiệu quả. Nó không chỉ nâng cấp phong cách viết mã của lập trình viên mà còn giảm bớt rất nhiều công việc bổ sung.

Nếu bạn tìm thấy bài viết này về “Các gói trong Java”, hãy xem của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Chúng tôi ở đây để giúp bạn từng bước trong hành trình của bạn, để trở thành một người ngoài câu hỏi phỏng vấn java này, chúng tôi còn đưa ra một chương trình giảng dạy được thiết kế cho sinh viên và chuyên gia muốn trở thành một Nhà phát triển Java.