close

Package là gì? Tìm hiểu chi tiết về Package trong Java

Tác giả: Đông Tùng Ngày cập nhật: 02/09/2022 Chuyên mục: Webmasters
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

Trong lĩnh vực lập trình, Package là một khái niệm rất quen thuộc. Với những ai thường xuyên làm việc với ngôn ngữ Java, khái niệm này càng trở nên quan trọng. Vậy cụ thể Package là gì? Các bạn hãy cùng Tino Group đi tìm câu trả lời qua bài viết dưới đây nhé!

Định nghĩa Package

Package là gì?

Package (gói) là một tập hợp các Class (lớp), Interface (giao diện) và gói con có liên quan với nhau. Hiểu đơn giản, Package tương tự như những thư mục khác nhau trên máy tính. Khi đó, bạn có thể giữ các trang HTML trong một thư mục, hình ảnh trong một thư mục khác và các tập lệnh hoặc ứng dụng trong một thư mục khác nữa.

Vì phần mềm được viết bằng ngôn ngữ lập trình Java bao gồm hàng trăm hoặc hàng nghìn Class riêng lẻ, nên việc giữ cho mọi thứ có tổ chức sẽ được thực hiện bằng cách đặt các Class và Interface có liên quan thành các Package.

package-la-gi

Lợi ích của Package

  • Các Package được sử dụng để tránh việc xung đột trong khi đặt tên, kiểm soát truy cập, giúp bạn tìm kiếm và sử dụng các Class, Interface,… một cách dễ dàng hơn. Đồng thời, việc phân loại Class và Interface sẽ giúp quá trình bảo trì trở nên đơn giản.
  • Khi thực hiện một dự án với Package, bạn có thể quan sát cấu tạo cũng như biết được ai là người viết dự án này.
  • Package được trang bị tính năng bảo mật quyền truy cập, giúp bạn yên tâm về tính an toàn khi sử dụng.

Phân loại Package

Built-in Packages (Package có sẵn hay Package từ Java API)

Java API là một thư viện chứa các Class miễn phí đã được viết sẵn và được đưa vào môi trường phát triển Java.

Các Package có sẵn sẽ chứa các thành phần giúp quản lý dữ liệu đầu vào, lập trình cơ sở dữ liệu,…

Thư viện được chia thành Package và Class. Người dùng có thể nhập một Class duy nhất hoặc toàn bộ các Package chứa tất cả các Class đã được chỉ định.

Các Package phổ biến được tích hợp sẵn trong Java gồm:

  • java.lang: Chứa các Class hỗ trợ ngôn ngữ (ví dụ: Class được định nghĩa các kiểu dữ liệu nguyên thủy, các phép toán). Package này sẽ được import tự động.
  • java.io: Chứa Class hỗ trợ input/output (I/O).
  • java.util: Chứa các Class tiện ích thực hiện các cấu trúc dữ liệu như danh sách liên kết, dictionary và hỗ trợ cho những hoạt động date/time.
  • java.applet: Chứa các Class cho phép tạo Applet.
  • java.awt: Chứa các Class để triển khai những thành phần cho giao diện người dùng đồ họa (button, menu,…).
  • java.net: Chứa các lớp để hỗ trợ các thao tác trong mạng (network).

Bạn có thể tham khảo thêm trên trang web của Oracle tại đây.

package-la-gi

Package do người dùng tự định nghĩa

Đây là các Package do người dùng tự định nghĩa.

Bài viết sẽ sử dụng Eclipse IDE để làm ví dụ demo. Cách tạo Package như sau:

Bước 1: Để tạo Package trong Java, bạn nhấn chuột phải vào thư mục src trong project và chọn New -> Package.

package-la-gi

Bước 2: Nhập tên package rồi nhấn Finish là xong.

package-la-gi

Sau đó bạn sẽ New (tạo mới) các Class, Interface,… có liên quan với nhau vào Package vừa đặt để gõ code.

Lưu ý: Một Package này có thể nằm trong một Package khác. Vì thế, trong mỗi Package, bạn cũng có thể tạo một Package mới.

Giả sử: trong Package demo vừa tạo, bạn sẽ New một file Class có tên là HelloWorld.

package-la-gi

Vì Class HelloWorld nằm trong Package demo, nên ở trên cùng của đoạn code, Eclipse IDE sẽ tự động thêm vào câu lệnh Package demo.

Mặt khác, Package newbie có rất nhiều Class trong đó. Do đó, để sử dụng được các Class ở Package newbie trong Class HelloWorld ở Package demo, bạn phải import Class đó.

Cú pháp:

import + <tên package>.<tên class>

Ví dụ: để sử dụng Class Array trong Package newbie, bạn sẽ khai báo như hình minh họa bên dưới:

package-la-gi

Hoặc muốn import tất cả các Class trong một Package, bạn chỉ cần sử dụng ký tự *:

import <tên package>.* (Giả sử: import newbie.*)

Như vậy, trong Class HelloWorld ở Package demo , bạn đã có thể sử dụng tất cả các Class trong có trong Package newbie rồi nhé!

Lưu ý khi sử dụng Package trong Java

  • Bạn hãy đặt tên cho Package theo thứ tự ngược lại với tên miền. Ví dụ: trường đại học có thể đặt tên theo dạng college.tech.ee, college.art.history,…
  • Dù các Package khác nhau nhưng Class vẫn có thể trùng tên. Trong trường hợp này, bạn phải import đầy đủ tên package và tên class để phân biệt.
  • Có 4 cách truy cập vào các Java Package gồm: Private, Protected, Public và Default.
  • Bạn có thể thêm nhiều Class vào một Package đơn giản bằng cách sử dụng tên Package ở phần đầu chương trình và lưu lại ở trong thư mục Package. Để xác định được một Class công khai, bạn cần tệp java mới hoặc có thể thêm một Class mới vào tệp hiện có và chỉnh sửa lại.
  • Các Package nhỏ bên trong Package lớn được gọi là Subpackage hay Package con. Bạn cần nhập chúng một cách rõ ràng.

Trên đây là một số thông tin về Package trong Java. Hy vọng bài viết sẽ thực sự hữu ích đối với những ai đang mới bước chân vào ngành lập trình nói chung và ngôn ngữ Java nói riêng. Chúc bạn thành công!

Những câu hỏi thường gặp

Có những cách nào để truy cập vào Package?

Có 4 cách truy cập vào Package gồm:

  • Private: Chỉ có thể truy cập bởi chính Class đó
  • Protected: Được truy cập bởi các Class trong cùng một Package (bao gồm subpackage)
  • Public: Được truy cập bằng tất cả các Class dù cùng một Package hay khác Package
  • Default: Được truy cập bởi Class trong cùng Package (không bao gồm subpackage)

Làm sao để truy cập một Package từ Package khác?

Có 3 cách để truy cập một Package từ Package khác:

  • Sử dụng packagename.*: Với cách này, tất cả các Class hay Interface của các Package đều có thể truy cập được, nhưng các Package con thì không.
  • Sử dụng packagename.classname: Bạn chỉ có thể truy cập được tới Class đã được khai báo của Package.
  • Sử dụng tên đầy đủ: Bạn chỉ được phép truy cập tới Class đã được khai báo của Package và không cần sử dụng từ khóa để import. Tuy nhiên, bạn phải sử dụng tên đầy đủ mỗi khi truy cập vào các Class hay interface

Các Class trong cùng một Package có cần import không?

Các Class trong cùng một Package không cần phải import. Vì cơ bản Package được dùng để gom các Class, Interface,… có liên quan với nhau để tiện sử dụng.

Eclipse IDE là gì?

Eclipse IDE được biết đến là một môi trường phát triển tích hợp (IDE) cho Java và một số ngôn ngữ lập trình khác như C, C ++, PHP, và Ruby … Môi trường phát triển này bao gồm các công cụ phát triển Java Eclipse (JDT) cho Java, Eclipse CDT cho C/C ++, Eclipse PDT cho PHP,…

Eclipse và các plugin khác từ nền tảng này được phát hành theo giấy phép Eclipse Public License (EPL). EPL sẽ đảm bảo Eclipse được tải xuống và cài đặt hoàn toàn miễn phí cũng như cho phép sửa đổi bởi cộng đồng.

Đông Tùng

Senior Technology Writer

Là cử nhân Quản trị kinh doanh của Trường Đại học Tài chính - Marketing, Tùng bắt đầu làm việc tại Tino Group từ năm 2021 ở vị trí Content Marketing để thỏa mãn niềm đam mê viết lách của bản thân. Sở hữu khả năng sáng tạo đặc biệt, anh cùng đội ngũ của mình đã tạo nên những chiến dịch quảng cáo độc đáo cùng vô số bài viết hữu ích về nhiều chủ đề khác nhau. Sự tỉ mỉ, kiên trì và tinh thần sáng tạo của Tùng đã góp phần lớn vào thành công của Tino Group trong lĩnh vực marketing trực tuyến.

Xem thêm bài viết

Bài viết liên quan

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO
Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn,  Phường Bến Nghé, Q. 1, TP. Hồ Chí Minh

Văn phòng kinh doanh: Số 42 Trần Phú, Phường 4, Quận 5, TP HCM
GPKD số 0315679836 do Sở KH và ĐT TP Hồ Chí Minh cấp
Hotline: 0364 333 333
Góp ý/Phản ánh dịch vụ: 0933 000 886