Package trong java là gì

-

Một package (gói) trong java là một nhóm các kiểu tương tự của các lớp, giao diện và các package con . Package trong java có thể được phân loại theo hai hình thức, package được dựng sẵn và package do người dùng định nghĩa.

Có rất nhiều package được dựng sẵn như java, lang, AWT, javax, swing, net, io, util, sql, ...

Trong bài này, chúng ta sẽ học:

Chi tiết về việc tạo và sử dụng các package người dùng định nghĩa. Ví dụ cách tổ chức package chuyên nghiệp trong java.

Bạn đang xem: Package trong java là gì

Lợi thế của việc sử dụng package trong java

Package được sử dụng để phân loại lớp và interface giúp dễ dàng bảo trì. Package cung cấp bảo vể truy cập Package khắc phục được việc đặt trùng tên.
*

//Save file Simple.javapackage mypack; public class Simple { public static void main(String args<>) { System.out.println("Learn java package"); }}
Lệnh -d được sử dụng để xách định nơi lưu trữ file .class sau khi biên dịch. Bạn có thể sử dụng bất kỳ tên thư mục nào như /home (Trong Linux OS), D:/temp (Trong Window OS). Nếu bạn muốn giữ các package này trong thư mục hiện tại ban sử dụng dấu chấm (.).

Run java package

Để run java package, bạn cần phải sử dụng tên đầy đủ. Ví dụ mypack.Simple.

Compile: javac -d . Simple.java

Run: java mypack.Simple

Kết quả:


Dấu chấm (.) biển diễn thư mục hiện tại.

Truy cập package từ package khác

Có 3 cách để truy cập package từ package bên ngoài:

Khai báo import package.*; Khai báo import package.classname; Sử dụng tên đầy đủ.

1. Sử dụng packagename.*

Nếu bạn sử dụng packagename.*. Thì tất cả các lớp và các interface của các gói này sẽ có thể truy cập, nhưng gói con của gói này thì không được truy cập.

Từ khóa import được sử dụng để truy cập các lớp và interface của gói khác từ gói hiện tại.

Ví dụ:


package mypack; import pack.*; class B { public static void main(String args<>) { A obj = new A(); obj.msg(); }}

2. Sử dụng packagename.classname

Nếu bạn khai báo import package.classname thì chỉ được truy cập tới lớp đã được khai báo của package này.

Ví dụ:


package mypack; import pack.A; class B { public static void main(String args<>) { A obj = new A(); obj.msg(); }} Kết quả:


Xem thêm: Lớp Abstract Trong Java Là Gì, Abstract Class Và Interface Trong Java

3. Sử dụng tên đầy đủ

Nếu bạn sử dụng tên đầy đủ thì chỉ được truy cập tới lớp đã được khai báo của package này. Bạn không cần phải sử dụng đến từ khóa import. Nhưng bạn cần phải sử dụng tên đầy đủ mỗi khi bạn truy cập vào các lớp hoặc interface.

Cách này thường được sử dụng khi 2 package có tên lớp giống nhau. Ví dụ, 2 package java.util và java.sql chứa lớp có tên giống nhau là lớp Date

Ví dụ:


package mypack; class B{ public static void main(String args<>){ pack.A obj = new pack.A(); //Sử dụng tên đầy đủ obj.msg(); } }
Note:Nếu bạn import một package thì package con của package đó không được import. Thứ tự của chương trình phải là package->import->class.
*

Package con trong java

Package bên trong một package khác được gọi là subpackage hay package con trong java.

Ví dụ, Sun Microsystem đã định nghĩa một gói có tên java chứa nhiều lớp như System, String, Reader, Writer, Socket, ... Các lớp này đại diện cho một nhóm cụ thể ví dụ như các lớp Reader và Writer cho các hoạt động Input/Output, Socket và ServerSocket các lớp xử lý mạng, ... Vì vậy, Sun đã phân loại lại gói java thành các gói phụ như lang, net, io, ... Và đặt các lớp liên quan đến Input/Output trong gói io, các lớp Server và ServerSocket trong các gói net.


Tiêu chuẩn để định nghĩa tên package trong java là domain.company.package ví dụ như: vn.evolutsionataizmama.com.action hoặc org.sssit.dao.

package vn.evolutsionataizmama.com.core;public class Simple { public static void main(String args<>) { System.out.println("Hello subpackage"); }}

Ví dụ cách tổ chức package chuyên nghiệp trong java

Các ví dụ ở trên cung cấp cho bạn cách để compile và run một lớp bên trong package do người dụng định nghĩa một cách thủ công. Khi đi làm về java trong môi trường thực tế, bạn sẽ phải học và sử dụng các IDE như eclipse, netbean, ... Những IDE này cung cấp cho bạn cách tạo và biên dịch cả một dự án đơn giản hơn rất nhiều. Khi đó bạn không cần phải nhớ các lệnh compile và run như ở trên.

Dưới dây là ví dụ cách tổ chức package chuyên nghiệp cho một dự án java web trên eclipse: