Trong Java thì package là một cách để chúng ta tổ chức các class Java có liên quan với nhau nằm trong một namespace. Nó giống như các thư mục trên máy tính của các bạn, thay vì chúng ta put tất cả các Java class vào package nhất định, tương ứng với một thư mục nhất định, chúng ta separate các Java class vào trong những package khác nhau, tương ứng với các thư mục khác nhau. Những Java class có liên quan với nhau thì sẽ nằm cùng package.
Chúng ta sẽ sử dụng từ khoá package để khai báo một package. Tên của package được viết dưới dạng chữ thường và chúng ta thường sẽ sử dụng đảo ngược tên domain của công ty, tổ chức để bắt đầu cho package name, ví dụ như:
- com.huongdanjava…
- com.google…
|
1 2 3 4 5 6 |
package com.huongdanjava.java; public class Application { static void main(String[] args) {} } |
Trên máy của các bạn, các bạn sẽ thấy cấu trúc thư mục tương ứng với package như sau:

Chúng ta cần phải có định nghĩa package vì:
- Organization: ứng dụng của các bạn có thể sẽ grow lên hàng trăm, hàng ngàn Java class files. Việc sử dụng package để organize các Java class files này sẽ giúp cho chúng ta dễ tìm kiếm chúng hơn và dễ maintain hơn.
- Tránh conflict name: chúng ta có thể có 2 hoặc nhiều thư viện đang định nghĩa các class có cùng tên. Việc sử dụng package sẽ giúp chúng ta identify class nào, trong package nào, chúng ta đang sử dụng.
- Control access: các access modifier trong Java sẽ dựa vào thông tin package của các class để xem class này có thể access tới các class, method của các class khác không.
- Làm việc với câu lệnh import: thay vì chúng ta phải viết thông tin package cùng với tên class mỗi khi chúng ta sử dụng một class bất kỳ, các bạn chỉ cần sử dụng câu lệnh import để import class đó một lần và sau đó chỉ cần sử dụng tên của class để làm việc. Câu lệnh import sẽ bao gồm thông tin về package mà class chúng ta cần sử dụng thuộc về, các bạn nhé!
Tóm lại, package trong Java không chỉ về việc organize các Java class files, mà còn giúp chúng ta tránh việc naming conflicts và hiện thực access control cho các Java class files của các bạn. Nhờ đó mà chúng ta có thể dễ dàng build và maintain các Java applications.
Các bạn có thể xem thêm video ở đây:

