Package là gì? Những điều cần biết về Package trong Java

Package là gì? Đây chắc hẳn là thắc mắc chung của rất nhiều người khi nghe đến khái niệm Package trong Java. Hãy cùng Vietnix tìm hiểu về Package Java, ưu điểm, ví dụ về Package, phân loại Package và cách truy cập Package từ một Package khác.

Package là gì?

Package Java là một nhóm những loại class, interface ( giao diện ) và những gói con tương tự như 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ì?

>> Xem thêm: Java là gì? Định nghĩa, ưu và nhược điểm của ngôn ngữ lập trình Java

banner khuyen mai combo
Chương trình khuyễn mãi thêm cuối năm tại Vietnix

Ư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 nó, 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 triển khai 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 hoàn toà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 hoàn toà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).

2 loại Java Package2 loại Java Package

Package được dựng sẵn

Java API là một thư viện chứa những Class không tính tiền được viết sẵn và được đưa vào Môi trường tăng trưởng Java .
Built-in PackagesBuilt-in Packages
Các Package này chứa những thành phần giúp quản trị tài liệu nguồn vào, lập trình cơ sở tài liệu và hơn thế nữa. Bạn hoàn toàn có thể tìm thấy list khá đầy đủ tại website của Oracles : https://docs.oracle.com/javase/8/docs/api/
Thư viện được chia thành những Package và những Class. Người dùng hoàn toàn có thể nhập một Class duy nhất ( cùng với phương pháp và thuộc tính của nó ) hoặc hàng loạt những Package chứa tổng thể những 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 hoàn toàn có thể có nhiều Package để lựa chọn. Trong ví dụ phần trước, tất cả chúng ta đã sử dụng Class Scanner từ Package java.util. Package này chứa những cơ sở như ngày và giờ, trình tạo số ngẫu nhiên và những lớp tiện ích khác .
Để nhập hàng loạt tài liệu của Package, bạn hãy kết thúc câu bằng dấu ( * ). Ví dụ :

import java.util.*;

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 mạng lưới hệ thống tệp để tàng trữ những package này. Việc này cũng giống như những 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 nó :

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

Biên dịch Package :

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

Người dùng hoàn toàn có thể sử dụng bất kể cái tên nào cho thư mục, ví dụ điển hình như c : / user ( Windows ). Hoặc nếu muốn giữ Package trong cùng một thư mục, bạn hoàn toà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!

banner khuyen mai tich luy
Chương trình khuyến mại cuối năm tại Vietnix

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

Sau đây là 1 số ít chú ý quan tâm bạn cần nắm rõ để thao tác với những Package hiệu suất cao :

  • 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.

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

  • 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 nó ở 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 nó.
  • 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ệ.

>> 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 vấn Package từ một Package khác, bạn hoàn toàn có thể sử dụng 1 trong 3 cách sau :

  • import package.*;
  • import package.classname;
  • fully qualified name.

1. Dùng packagename.*

Nếu bạn sử dụng package. * thì tổng thể những Class và giao diện của Package này hoàn toàn có thể được truy vấn nhưng nó không phải là những Package con. Từ khóa import được sử dụng để làm cho những Class và giao diện của một Package khác hoàn toàn có thể truy vấn đượ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ỉ những Class đã khai báo của Package này mới hoàn toàn có thể có quyền truy vấn. 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 kèm theo để truy vấn Package. Tuy nhiên, chỉ những Class được khai báo của Package này mới hoàn toàn có thể truy vấn được. Bạn cần sử dụng tên khá đầy đủ điều kiện kèm theo mỗi khi truy vấn 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ạ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ì, Package trong Java là gì, ưu điểm, ví dụ về Package, 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!