NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
06/07/2022
Lượt xem

Package là gì? Tìm hiểu về Package trong Java

06/07/2022
12 phút đọc
Lượt xem

Đánh giá

5/5 - (128 bình chọn)

Trong ngôn ngữ lập trình Java, Package là một trong những điều quan trọng bạn cần biết và sử dụng thành thạo. Vậy Package là gì và chúng được định nghĩa như thế nào? Cùng tìm hiểu qua bài viết dưới đây.

Package là gì?

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

Package trong Java được phân loại thành hai nhóm:

  • Package đã được dựng sẵn.
  • Package do người dùng định nghĩa.
Package trong Java là gì?
Package trong Java là gì?

Những lưu ý khi sử dụng Java Package

Sau đây là một số lưu ý bạn cần nắm rõ để làm việc với các Package hiệu quả:

  • Cách đặt tên Package: Bạn nên đặt tên Package theo thứ tự ngược lại với tên miền. Ví dụ: Các trường đại học thường đặt tên theo dạng college.tech.ee, college.art.history,…
  • Các Package khác nhau nhưng class vẫn có thể trùng tên nhau. Trong trường hợp này, người sử dụng phải Import đầy đủ tên Package và tên class để phân biệt.
  • 4 cách truy cập vào các Java Package: private, protected, public và default.
    • Private: Với cách làm này, bạn chỉ có thể truy cập vào Package với chính class đó.
    • Protected: Người sử dụng có thể truy cập Package 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: Bạn có thể truy cập bằng tất cả các class khác nhau, không cần ở trong cùng một Package.
    • Default: Người dùng truy cập bởi các class trong cùng một Package.
  • Thêm một class vào một Package: Người sử dụng có thể thêm nhiều class vào một Package cực đơn giản bằng cách sử dụng tên Package ở phần đầu chương trình và lưu chúng ở trong thư mục Package. Để xác định một class công khai, bạn sẽ cần một tệp Java mới. Hoặc bạn có thể thêm một class mới vào tệp hiện có và chỉnh sửa lại chúng.
  • Các Package con: Các Package nhỏ bên trong một Package lớn được gọi là subpackage hay Package con. Bạn bắt buộc phải nhập chúng một cách rõ ràng. Đặc biệt, các thành phần trong Package con được coi như các Package khác nhau đối khi mặc định và chúng được bảo vệ.
Những lưu ý khi sử dụng Java Package
Những lưu ý khi sử dụng Java Package

Ưu điểm của Java Package

Sau đây là những ưu điểm của Package trong Java:

  • Package Java được tổ chức theo một hệ thống rõ ràng, giúp người dùng phân loại các class và interface để quá trình bảo trì trở nên dễ dàng hơn. Khi thực hiện một dự án, bạn có thể dễ dàng quan sát cấu tạo của chúng, thậm chí biết được ai là người viết dự án này.
  • Package Java được trang bị tính năng bảo mật quyền truy cập cao, bạn có thể yên tâm về tính an toàn khi sử dụng.
  • Package Java giúp hạn chế tối đa tình trạng xung đột khi đặt tên. Các class trùng tên nhau nhưng nằm trong các Package khác nhau thì vẫn được hệ thống chấp nhận.
Ưu điểm của Java Package
Ưu điểm của Java Package là gì?

Ví dụ về Java Package

Để sử dụng một Package trong Java, bạn cần sử dụng từ khóa Package. 

//save as Simple.java  
package mypack;  

public class Simple{  

public static void main(String args[]){  

    System.out.println("Welcome to package");  

   }  

}  
  • Cách biên dịch Package Java: Nếu bạn không sử dụng bất kỳ IDE nào, bạn cần thực hiện theo cú pháp dưới đây:
javac -d directory javafilename  

Ví dụ:

javac -d . Simple.java  

Thành phần -d chỉ định nơi đặt tệp class đã tạo. Bạn có thể sử dụng bất kỳ tên thư mục nào như / home (trong trường hợp Linux), d: / abc (trong trường hợp Windows),… Nếu bạn muốn giữ Package trong cùng một thư mục, bạn có thể sử dụng dấu chấm.

Phân loại Java Package

Như đã nói ở trên, Package Java được chia thành 2 loại:

  • Built-in Packages (Package được dựng sẵn hay còn gọi là các Package từ Java API).
  • User-defined Packages (Package do người dùng định nghĩa).
Phân loại Java Package
Phân loại Java Package

1. Package được dựng sẵn

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.

Package được dựng sẵn
Package được dựng sẵn

Các Package này 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 và hơn thế nữa. Bạn có thể tìm thấy danh sách đầy đủ tại trang web của Oracles: https://docs.oracle.com/javase/8/docs/api/ 

Thư viện được chia thành các Package và các class. Người dùng có thể nhập một class duy nhất (cùng với phương thức và thuộc tính của chúng) hoặc toàn bộ các Package chứa tất cả các class có trong Package đã được chỉ định.

Để sử dụng một Package hoặc một class từ thư viện, bạn cần sử dụng từ khóa sau:

  • import package.name.Class;   // Import a single class
  • import package.name.*;   // Import the whole package

Cách Import một class:

Nếu bạn muốn sử dụng một class, ví dụ như lớp Scanner class dùng để lấy thông tin nhập vào của người dùng, hãy dùng mã sau:

import java.util.Scanner;

Trong ví dụ bạn vừa thấy, java.util là một Package, trong khi Scanner là một class của Package java.util đó.

Cách Import một Package:

Bạn có thể có nhiều Package để lựa chọn. Trong ví dụ phần trước, chúng ta đã sử dụng class Scanner từ Package java.util. Package này chứa các cơ sở như ngày và giờ, trình tạo số ngẫu nhiên và các lớp tiện ích khác.

Để nhập toàn bộ dữ liệu của Package, bạn hãy kết thúc câu bằng dấu (*). Ví dụ:

import java.util.*;

2. Package do người dùng định nghĩa

Trước khi tạo lập Package do chính người dùng định nghĩa, bạn cần hiểu rằng Java sẽ sử dụng một thư mục hệ thống tệp để lưu trữ các Package này. Việc này cũng giống như các thư mục trên máy tính của bạn:

└── root
  └── mypack
    └── MyPackageClass.java

Để tạo một Package, hãy sử dụng từ khóa Package như sau:

package mypack;
class MyPackageClass {
  public static void main(String[] args) {
    System.out.println("This is my package!");
  }
}

Sau đó, hãy lưu tệp dưới dạng MyPackageClass.java và biên dịch chúng:

C:\Users\Your Name>javac MyPackageClass.java

Biên dịch Package:

C:\Users\Your Name>javac -d . MyPackageClass.java

Người dùng có thể sử dụng bất kỳ cái tên nào cho thư mục, chẳng hạn như c: / user (Windows). Hoặc nếu muốn giữ Package trong cùng một thư mục, bạn có thể sử dụng dấu chấm “.” như trong ví dụ bên trên.

Lưu ý: Tên Package nên được tạo bằng chữ thường để tránh xung đột với tên class.

Sau khi biên dịch Package trong ví dụ trên, một thư mục mới đã được tạo có tên là “mypack”. Để chạy tệp MyPackageClass.java, bạn có thể viết như sau:

C:\Users\Your Name>java mypack.MyPackageClass

Output thu được sẽ là:

This is my package!

>> Xem thêm: 5 Cách sửa lỗi Error: Could not find or load main class

Làm thế nào để truy cập Package từ một Package khác?

Để truy cập Package từ một Package khác, bạn có thể sử dụng 1 trong 3 cách sau:

  1. import package.*
  2. import package.classname
  3. fully qualified name

1. Dùng packagename.*

Nếu bạn sử dụng package.* thì tất cả các class và giao diện của Package này có thể được truy cập nhưng nó không phải là các Package con. Từ khóa import được sử dụng để làm cho các class và giao diện của một Package khác có thể truy cập được vào Package hiện tại. Ví dụ:

//save by A.java  
  
package pack;  
public class A{  
  public void msg(){System.out.println("Vietnix");}  
}  
/save by B.java  
package mypack;  
import pack.A;  
  
class B{  
  public static void main(String args[]){  
   A obj = new A();  
   obj.msg();  
  }  
}  

>> output: Vietnix

2. Dùng packagename.classname

Nếu bạn nhập package.classname thì chỉ các class đã khai báo của Package này mới có thể có quyền truy cập. Ví dụ:

//save by A.java  
  
package pack;  
public class A{  
  public void msg(){System.out.println("Vietnix");}  
}  
//save by B.java  
package mypack;  
import pack.A;  
  
class B{  
  public static void main(String args[]){  
   A obj = new A();  
   obj.msg();  
  }  
}   

>> output: Vietnix

3. Dùng fully qualified name (Dùng tên đủ điều kiện)

Với cách làm này, người sử dụng cần dùng tên đủ điều kiện để truy cập Package. Tuy nhiên, chỉ các class được khai báo của Package này mới có thể truy cập được. Bạn cần sử dụng tên đầy đủ điều kiện mỗi khi truy cập vào class hoặc giao diện.

Cách làm này thường được sử dụng khi Package có cùng tên class, ví dụ: Các gói java.util và java.sql chứa lớp Ngày.

Ví dụ:

//save by A.java  
package pack;  
public class A{  
  public void msg(){System.out.println("Vietnix");}  
}  
//save by B.java  
package mypack;  
class B{  
  public static void main(String args[]){  
   pack.A obj = new pack.A();//using fully qualified name  
   obj.msg();  
  }  
}  

>> output: Vietnix

Lưu ý: Nếu bạn nhập một Package, tất cả các class và giao diện của Package đó sẽ được nhập vào, ngoại trừ các class và giao diện của các subpackage . Vì vậy người sử dụng cũng cần nhập thêm các subpackage.

>> Trình tự nhập: package > import > class.

Subpackage trong Java là gì?

Package bên trong Package khác gọi là subpackage. Các subpackage được tạo ra để phân loại các Package rõ hơn.

Ví dụ về subpackage:

package com.javatpoint.core;  
class Simple{  
  public static void main(String args[]){  
   System.out.println("Subpackage Vietnix");  
  }  
}  

Để biên dịch: javac -d. Simple.java
Để chạy: java com.javatpoint.core.Simple

>> output: Subpackage Vietnix

Làm thế nào để gửi class file đến một thư mục hoặc ổ đĩa khác?

Trường hợp ví dụ bạn muốn đặt class file của file nguồn A.java trong thư mục class của ổ đĩa c:

//save as Simple.java  
package mypack;  
public class Simple{  
 public static void main(String args[]){  
    System.out.println("Welcome to Vietnix");  
   }  
}  
  • Để biên dịch: e:\sources> javac -d c:\classes Simple.java.
  • Để chạy chương trình này từ thư mục e:\source directory, bạn cần đặt classpath của thư mục chứa class file.
    • e:\sources> set classpath=c:\classes;
    • e:\sources> java mypack.Simple

Làm thế nào để đặt hai public classes trong một Package?

Nếu bạn muốn đặt hai public classes trong một Package, bạn cần có hai source files (tệp nguồn) java chứa một public classes , nhưng giữ nguyên tên Package. 

Ví dụ:

//save as A.java  
  
package javatpoint;  
public class A{}  
//save as B.java  
  
package javatpoint;  
public class B{}  

Kết luận

Trên đây, Vietnix đã cùng bạn tìm hiểu Package là gì, phân loại Package và cách truy cập Package từ một Package khác. Mong rằng qua bài viết này, bạn sẽ có thêm các thông tin hữu ích về Package, giúp quá trình làm việc của bạn trở nên hiệu quả hơn!

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

PHẦN CỨNG MẠNH MẼ

HỖ TRỢ 24/7

ĐĂNG KÝ NGAY
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG