Latest Post

Tăng thứ hạng và truy cập tự nhiên với 10 phương pháp SEO hay nhất Kiếm Tiền Online (mmo): Khái Niệm và Các Hình Thức Phổ Biến

Trong lập trình bằng ngôn ngữ Java, Package đóng vai trò quan trọng và đòi hỏi người lập trình hiểu và sử dụng nó một cách thành thạo. Hãy cùng chúng tôi khám phá khái niệm về Package trong Java và xem nó được định nghĩa như thế nào ngay bây giờ!

Package là gì?

Package (gói) trong java là một nhóm các loại class (lớp), interface (giao diện) và gói con tương tự nhau

Package trong Java được chia thành hai loại:

  • Package (gói) đã được dựng sẵn
  • Package (gói) do người dùng định nghĩa

Package trong Java

Package trong Java

Có rất nhiều gói được dựng sẵn như: lang, AWT, java, javax, swing hay util, sql và net, io,…

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

Cú pháp Package do người dùng định nghĩa

Cú pháp Package do người dùng định nghĩa

Những điều cần biết về Package

  • Quy ước cách đặt tên các Package: Các Package được đặt tên theo thứ tự ngược lại với tên miền, nghĩa là org.geeksforgeeks.practice

Ví dụ, trong các trường đại học thường quy ước được đề xuất là college.tech.ee, college.tech.cse hay college.art.history,…

  • Các package khác nhau nhưng có thể có class trùng tên nhau. Nếu package khác nhau nhưng lại có các class trùng tên nhau thì khi sử dụng bắt buộc bạn phải import đầy đủ tên package và cả tên class
  • Cách truy cập vào các thành phần trong package: private, protected, public, default

Có 4 cách để có thể truy cập vào package là private, protected, public, default

Có 4 cách để có thể truy cập vào package là private, protected, public, default

  • Private: Chỉ có thể truy cập bởi chính class đấy
  • Protected: Được truy cập bởi các Class trong cùng một package, các class chính là sub- class của class này
  • Public: Có thể được truy cập bằng tất cả các class dù ở trong cùng một package hay khác package
  • Default: Được truy cập bởi class trong cùng package
  • Thêm một lớp vào một gói: Bạn có thể thêm nhiều lớp vào một gói bằng cách sử dụng tên gói ở phần đầu chương trình và lưu nó ở trong thư mục gói. Bạn cần một tệp java mới để có thể xác định một lớp công khai, nếu không bạn có thể thêm một lớp mới vào tệp hiện có và chỉ cần biên dịch lại nó
  • Các gói con: Các gói nhỏ bên trong một gói khác được gọi là subpackage hoặc package con. Chúng không được phép nhập theo mặc định mà phải nhập một cách rõ ràng. Đặc biệt, các thành viên trong một gói con thì không có quyền truy cập, nghĩa là chúng được coi như các gói khác nhau đối với các chỉ định về truy cập mặc định và được bảo vệ 

Những lợi thế của việc sử dụng Package là gì?

  • Việc tổ chức các tệp tin, bao gồm cả lớp và giao diện, trong một dự án phần mềm mang lại nhiều lợi ích. Quá trình tổ chức này theo một hệ thống cụ thể giúp thuận tiện cho việc phân loại tệp tin. Trong trường hợp đặc biệt, khi có những lớp trùng tên nhau nhưng nằm trong các gói khác nhau, hệ thống vẫn có thể chấp nhận mà không gây ra xung đột.

    Khi dự án được tổ chức một cách có hệ thống, người phát triển có khả năng dễ dàng nhận biết các thành phần khác nhau của dự án. Điều này giúp họ hiểu rõ các phần chính của dự án là gì và thậm chí có thể nhận biết được ai đã đóng góp vào việc xây dựng dự án này. Thông thường, người ta thường sử dụng tên miền hoặc tên công ty làm tiền tố cho tên gói, giúp tạo ra một cấu trúc gọn gàng và rõ ràng.

Ví dụ về cách tổ chức một project

Ví dụ về cách tổ chức một project

  • Phân quyền truy cập: Ở phần access modifier ta có access modifier default giúp bạn có thể quản lý xem class nào được gọi tới class thuộc package nào
  • Chọn lọc khi import: 

Các package trong java được phân cấp như trên hình vẽ

Các package trong java được phân cấp như trên hình vẽ

  • Khi bạn muốn import tất cả các class trong package thì sử dụng lệnh import java.sql.*
  •  Khi chỉ muốn sử dụng class nằm trong package regex thì sử dụng lệnh import java.util.regex.* 

Rõ ràng rằng việc sử dụng package giúp bạn có thể truy cập vào những class thực sự cần thiết

Bạn đọc tham khảo thêm:

[Giải đáp] Syntax là gì? Các lỗi cú pháp Syntax trong lập trình

Database Administrator là gì và những kỹ năng cần thiết của DBA

Cách truy cập Package từ Package khác

  • Sử dụng packagename.*: Khi bạn sử dụng packagename .*thì lúc này tất cả các lớp hay interface của các gói đều có thể truy cập được, nhưng các gói con của nó thì không

Để có thể truy cập các lớp hay interface của gói khác từ khói hiện tại ta sử dụng từ khóa import 

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng packagename.*

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng packagename.*

  • Sử dụng packagename.classname: Bạn chỉ có thể truy cập được tới lớp mà đã được khai báo của package

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng  packagename.ClassName

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng  packagename.ClassName

  • Sử dụng tên đầy đủ: Nếu sử dụng tên đầy đủ thì bạn chỉ được phép truy cập tới lớp mà đã được khai báo của Package, không cần sử dụng từ khóa import, nhưng phải sử dụng tên đầy đủ mỗi khi truy cập vào các lớp hay interface

Cách sử dụng tên đầy đủ thường được dùng khi hai Package có tên lớp (Class) giống nhau 

Ví dụ: cả hai package là java.sql và java.util đều có cùng tên lớp là Date

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng tên đầy đủ

Ví dụ về cách truy cập Package từ Package khác bằng cách sử dụng tên đầy đủ

Lưu ý: 

  • Nếu bạn đã import một package thì package con của package đó sẽ không được import 
  • Thứ tự của chương trình là: package → import → class

Thứ tự của chương trình từ trên xuống dưới như hình

Thứ tự của chương trình từ trên xuống dưới như hình

  • Nên sử dụng import packagename.ClassName khi muốn sử dụng một class của package này ở một package khác
  • Mỗi một package sẽ tương ứng với một thư mục 

Kết luận: Có thể nhận thấy rằng package trong Java đóng một vai trò vô cùng quan trọng trong quá trình lập trình. Việc thành thạo sử dụng package không chỉ giúp làm cho mã nguồn trở nên thuận tiện hơn mà còn tạo điều kiện thuận lợi cho quá trình phát triển và bảo trì mã nguồn. Hy vọng rằng bài viết giới thiệu về khái niệm package trong Java đã cung cấp cho bạn những kiến thức cơ bản và quan trọng, từ đó giúp bạn nâng cao kỹ năng lập trình của mình.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *