Java.lang là gì

Hướng dẫn tự học Java/J2EE và SOA

  • Trang nhất
  • Tự học lập trình
  • Hướng dẫn tự học Java/J2EE và SOA
  • Thứ sáu - 06/12/2019 16:02
  • 7532

Bài 6: Packages trong Java:Cách tạo và sử dụng các packages trong Java

Một trong những tính năng sáng tạo nhất của Java là khái niệm về các gói package. Các gói package trong Java là một cách để đóng gói một nhóm các lớp, giao diện, bảng liệt kê, chú thích và các gói package phụ. Về mặt khái niệm, bạn có thể hiểu các gói packagegiống...

Trong bài viết này, chúng ta sẽ đề cập đến những điều cơ bản của các gói package trong Java. Dưới đây là các chủ đề được đề cập trong bài viết này:
Gói package trong Java là gì?
Gói package tích hợp
Gói package do người dùng xác định
Tạo một gói package trong Java
Đặt một lớp trong gói package Java
Tạo một lớp bên trong gói package trong khi import gói package khác
Sử dụng tên đủ điều kiện trong khi nhập một lớp
Static import trong Java
Bảo vệ truy cập trong các gói package Java
Những điểm cần nhớ

Gói package trong Java là gì?

Gói package Java là một cơ chế nhóm các loại lớp, giao diện và các lớp con tương tự nhau dựa trên chức năng. Khi phần mềm được viết bằng ngôn ngữ lập trình Java , nó có thể bao gồm hàng trăm hoặc thậm chí hàng ngàn lớp riêng lẻ. Nóý nghĩa trong việc tổ chức mọi thứ bằng cách đặt các lớp và giao diện liên quan vào các gói package.
Sử dụng các gói package trong khi lập trìnhcung cấp rất nhiều lợi thế như:

  • 1.Khả năng sử dụng lại: Các lớp có trong các gói package của chương trình khác có thể dễ dàng sử dụng lại
  • 2.Tên Xung đột: Gói package giúp chúng ta xác định duy nhất một lớp, ví dụ, chúng ta có thể có các lớp như company.sales.Employee và company.marketing.Employee
  • 3. Truy cập được kiểm soát: Cung cấp bảo vệ truy cập như bảo vệ lớp class [lớp mặc định và lớp riêng]
  • 4. Đóng gói dữ liệu : Chúng cung cấpmột cách để ẩn các lớp, ngăn các chương trình khác truy cập các lớp chỉ dành cho sử dụng nội bộ
  • 5. Bảo trì: Với các gói package, bạn có thể tổ chức dự án của mình tốt hơn và dễ dàng xác định vị trí các lớp liên quan

Đó là một cách thực hành tốt để sử dụng các gói package trong khi lập trìnhbằng Java. Là một lập trình viên, bạn có thể dễ dàng tìm ra các lớp , giao diện, bảng liệt kê và chú thích có liên quan. Có hai loại gói package trong java.

Các loại gói package trong Java

Dựa trên việc gói package được xác định bởi người dùng hay không, các gói package được chia thành hai loại:
- Gói package được xây dựng sẵn [buit-in]
- Gói package do người dùng xác định [defined]

Gói package được xây dựng sẵn

Các gói package dựng sẵn hoặc các gói package được xác định trước là các gói package đi kèm như một phần của JDK [Bộ công cụ phát triển Java] để đơn giản hóa nhiệm vụ của lập trình viên Java. Chúng bao gồm một số lượng lớn các lớp và giao diện được xác định trước là một phần của API Java. Một số gói package tích hợp thường được sử dụng là java.lang, java.io, java.util, java.applet, v.v ... Dưới đây là một chương trình đơn giản sử dụng gói package tích hợp:

import java.util.ArrayList;public class BuiltInPackage { public static void main[String[] args] { ArrayList myList = new ArrayList[3]; myList.add[3]; myList.add[2]; myList.add[1]; System.out.println["Cac thanh phan cua danh sach la: " + myList]; }}

Kết quả:

Lớp ArrayList thuộc gói package java.util. Để sử dụng nó, chúng ta phải nhập gói package bằng cách sử dụng câu lệnh import để nhập gói package bằng dòng đầu tiên của đoạn code 'importjava.util.ArrayList'. Nghĩa là import góipackage java.util và sử dụng lớp ArrayList có trong gói package phụ util.

Gói package do người dùng xác định

Các gói package do người dùng định nghĩa là các gói package được người dùng phát triển để nhóm các lớp, giao diện và gói package phụ liên quan. Với sự trợ giúp của một chương trình ví dụ, hãy xem cách tạo các gói package, biên dịch các chương trình Java bên trong các gói package và thực thichúng như thế nào dưới đây:

Cách tạo một gói package trong Java

Tạo một gói package trong Java là một công việc rất dễ dàng. Chọn một cái tên cho gói package và sử dụngmộtcâu lệnh package đểđặt trướctrong file .java. Tệp nguồn java có thể chứa các lớp, giao diện, bảng liệt kê và các loại chú thích mà bạn muốn đưa vào gói package. Ví dụ: câu lệnh sau tạo một gói package có tên MyPackage.

package MyPackage;

Câu lệnh package chỉ đơn giản chỉ định gói package nào mà các lớp được định nghĩa thuộc về

Lưu ý: Nếu bạn bỏ qua câu lệnh package, tên lớp được đặt vào gói package mặc định, không có tên. Mặc dù gói package mặc định là tốt cho các chương trình ngắn, nhưng nó không đủ cho các ứng dụng thực.

Đặt một class trong gói package Java

Để tạo một lớp bên trong một gói package, bạn nên khai báo tên gói package là câu lệnh đầu tiên của chương trình của bạn. Sau đó bao gồm các lớp class như là một phần của gói package. Nhưng, hãy nhớ rằng, một lớp chỉ có thể có một khai báo gói package. Đây là một chương trình đơn giản để hiểu khái niệm.

package MyPackage;public class Compare { int num1, num2; Compare[int n, int m] { num1 = n; num2 = m; }public void getmax[]{ if [ num1 > num2 ] { System.out.println["Maximum value of two numbers is " + num1]; } else { System.out.println["Maximum value of two numbers is " + num2]; }}public static void main[String args[]] { Compare current[] = new Compare[3]; current[1] = new Compare[5, 10]; current[2] = new Compare[123, 120]; for[int i=1; i < 3 ; i++] { current[i].getmax[]; } }}

Kết quả: Maximum value of two numbers is 10
Maximum value of two numbers is 123

Như bạn có thể thấy, tôi đã khai báo một gói package có tên MyPackage và tạo một lớp Compare bên trong gói package đó. Java sử dụng các thư mục hệ thống file để lưu trữ các gói package. Vì vậy, chương trình này sẽ được lưu trong một tệp dưới dạng compare.java và sẽ được lưu trong thư mục có tên MyPackage. Khi tệp được biên dịch, Java sẽ tạo một tệp .class và lưu trữ nó trong cùng thư mục. Hãy nhớ rằng tên của gói package phải giống với thư mục mà tệp này được lưu.

Bạn có thể tự hỏi làm thế nào để sử dụng class Compare này từ một class trong gói package khác?

Tạo một lớp bên trong gói package trong khi import gói package khác

Chà, nó khá đơn giản. Bạn chỉ cần import nó. Chỉ một lần nó được import, bạn có thể truy cập nó bằng tên của nó. Đây là một chương trình mẫu thể hiện khái niệm này.

package AptechBuonMaThuot;import MyPackage.Compare;public class Demo{ public static void main[String args[]] { int n=10, m=10; Compare current = new Compare[n, m]; if[n != m] { current.getmax[]; } else { System.out.println["Both the values are same"]; } }}

Kết quả: Both the values are same

Đầu tiên tôi đã khai báo gói package AptechBuonMaThuot, sau đó import class Comparetừ gói package MyPackage. Vì vậy, thứ tự khi chúng ta tạo một lớp bên trong một gói package trong khi nhập gói package khác là:

  • - Khai báo 1 gói package
  • - Import class từ một gói package khác

Chà, nếu bạn không muốn sử dụng câu lệnh import , có một cách khác để truy cập tệp lớp của gói package từ gói package khác. Bạn chỉ có thể sử dụng tên đủ điều kiện trong khi import một lớp .

Sử dụng tên đủ điều kiện trong khi import một lớp

Đây là một ví dụ để hiểu khái niệm trên. Tôi sẽ sử dụng cùng một gói package mà tôi đã khai báo trước đó trong bài viết này làMyPackage .

package AptechBuonMaThuot;public class Demo{ public static void main[String args[]] { int n=10, m=11; //Using fully qualified name instead of import MyPackage.Compare current = new MyPackage.Compare[n, m]; if[n != m] { current.getmax[]; } else { System.out.println["Both the values are same"]; } }}

Kết quả:Maximum value of two numbers is 11
Trong lớp Demo, thay vì nhập gói package, tôi đã sử dụng tên đủ điều kiện như MyPackage.Compare để tạo đối tượng của nó. Vì chúng ta đang nói về việc nhập các gói package, bạn cũng có thể kiểm tra khái niệm Static import trong Java.

Static importtrong Java

Tính năng nhập tĩnh được giới thiệu trong Java từ phiên bản 5. Nó tạo điều kiện cho lập trình viên Java truy cập trực tiếp vào bất kỳ thành viên tĩnh nào của lớp mà không cần sử dụng tên đủ điều kiện.

package MyPackage;import static java.lang.Math.*; //static importimport static java.lang.System.*;// static importpublic class StaticImportDemo { public static void main[String args[]] { double val = 64.0; double sqroot = sqrt[val]; // Access sqrt[] method directly out.println["Sq. root of " + val + " is " + sqroot]; //We don't need to use 'System.out } }

Kết quả:Sq. root of 64.0 is 8.0
Mặc dù sử dụng static importbao gồm ít mã hóa hơn, việc lạm dụng nó có thể khiến chương trình không thể đọc được và không thể nhận ra. Bây giờ hãy chuyển sang chủ đề tiếp theo, kiểm soát truy cập trong các gói package.

Bảo vệ truy cập trong các gói package Java

Bạn có thể nhận thức được các khía cạnh khác nhau của cơ chế kiểm soát truy cập của Java và các bộ chỉ định truy cập của Java . Các gói package trong Java thêm một mẫu khácđể kiểm soát truy cập. Cả hai lớp và gói package là một phương tiện đóng gói package dữ liệu . Trong khi các gói package đóng vai trò là các thùng chứa cho các lớp và các gói package cấp dưới khác, các lớp đóng vai trò là các thùng chứa dữ liệu và mã. Do sự tương tác giữa các gói package và các lớp này, các gói package Java có bốn loại khả năng hiển thị cho các thành viên của lớp:

  • - Các lớp con [Sub-classes] trong cùng một gói package
  • - Không phải lớp con[non-Subclasses] trong cùng một gói package
  • - Các lớp con [Sub-classes] trong các gói package khác nhau
  • - Các lớp không nằm trong cùng một gói package như các lớp con

Bảng bên dưới cung cấp một hình ảnh thực tế về loại truy cập nào là có thể và không phải là khi sử dụng các gói package trong Java:

PrivateNo ModifierProtectedPublic

Same Class

Yes

Yes

Yes

Yes

Same Package Subclasses

No

Yes

Yes

Yes

Same Package Non-Subclasses

No

Yes

Yes

Yes

Different Packages Subclasses

No

No

Yes

Yes

Different Packages Non- Subclasses

No

No

No

Yes

Chúng ta có thể đơn giản hóa dữ liệu trong bảng trên như sau:
1. Bất cứ điều gì tuyên bố công khai public có thể được truy cập từ bất cứ nơi nào
2. Bất cứ điều gì được tuyên bố là riêng tư privatechỉ có thể được nhìn thấy trong lớp đó
3. Nếu chỉ định truy cập không được đề cập, một phần tử sẽ hiển thị cho các lớp con cũng như các lớp khác trong cùng một gói package
4. Cuối cùng, bất kỳ phần tử được bảo vệ nào được khai báo đều có thể được nhìn thấy bên ngoài gói package hiện tại của bạn, nhưng chỉ với các lớp màphân lớp của nó tronglớp của bạn

Theo cách này, các gói package Java cung cấp kiểm soát truy cập cho các lớp.
Dưới đây là một số điểm mà bạn nên ghi nhớ khi sử dụng các gói package trong Java .

Những điểm cần nhớ

  • - Mỗi lớp là một phần của một số gói package. Nếu bạn bỏ qua câu lệnh package, tên lớp được đặt vào gói package mặc định
  • - Một lớp chỉ có thể có một câu lệnh package nhưng nó có thể có nhiều câu lệnh import package
  • - Tên của gói package phải giống với thư mục lưu tệp
  • - Khi nhập gói package khác, khai báo gói package phải là câu lệnh đầu tiên, tiếp theo là import package

Tác giả bài viết: Aptech Buôn Ma Thuột

Tags
tự học java

Ý kiến bạn đọc

Tham gia thảo luận

Name *

Email *

Nội dung

Mã an toàn

Theo dòng sự kiện

Bài 5:Bytecode trong Java là gì? Nó hoạt động như thế nào?
  • 06/12/2019
  • Phản hồi
Bài 4:Tìm hiểu cách sử dụng đối số của Java bằng các ví dụ cụ thể
  • 05/12/2019
  • Phản hồi
Bài 3:Tự học Java: Viết chương trình đầu tiên "Hello World" bằng Java
  • 04/12/2019
  • Phản hồi
Bài 2: Hướng dẫn cài đặt java và thiết lập đường dẫn cho Java.
  • 04/12/2019
  • Phản hồi
Bài 1: Java là gì? Hướng dẫn cho người mới bắt đầu về Java
  • 03/12/2019
  • Phản hồi

Những tin mới hơn

Bài 7: Modifiers trong Java? Cách thức truy cập Access Modifiers
  • 12/12/2019
  • Phản hồi

Những tin cũ hơn

Bài 5:Bytecode trong Java là gì? Nó hoạt động như thế nào?
  • 06/12/2019
  • Phản hồi
Bài 4:Tìm hiểu cách sử dụng đối số của Java bằng các ví dụ cụ thể
  • 05/12/2019
  • Phản hồi
Bài 3:Tự học Java: Viết chương trình đầu tiên "Hello World" bằng Java
  • 04/12/2019
  • Phản hồi
Bài 2: Hướng dẫn cài đặt java và thiết lập đường dẫn cho Java.
  • 04/12/2019
  • Phản hồi
Bài 1: Java là gì? Hướng dẫn cho người mới bắt đầu về Java
  • 03/12/2019
  • Phản hồi

Tin mới

Những tips cần thiết bỏ túi khi học lập trình Java!
Sinh viên IT cần những kỹ năng mềm gì trong thời kỳ chuyển đổi số
Học lập trình - sự lựa chọn thông minh và an toàn
Top 5 Framework PHP hàng đầu được lập trình viên dùng nhiều nhất
6 điều đã làm nên sự khác biệt tại Aptech

Khóa học lập trình

Chi tiết
Lập trình ứng dụng với...Khóa học lập trình ngắn hạn
Thời gian
6 tháng
Học phí
Liên hệ
Chi tiết
Lập trình PHP cơ bảnKhóa học lập trình ngắn hạn
Thời gian
4 tuần [T7 &CN]
Học phí
2,15 TR
Chi tiết
Lập trình Windows Form...Khóa học lập trình ngắn hạn
Thời gian
Liên hệ
Học phí
Liên hệ
Chi tiết
Lập trình viên quốc tế...Khóa học lập trình viên quốc tế
Thời gian
20 tháng
Học phí
Ưu đãi 40%

Gọi 0906.513.555 để tư vấn

Hoặc

Tư vấn cho tôi

Hỗ trợ online

  • Võ Huỳnh Mỹ Trang
    0828 79 45 45
    Gửi email
  • Phạm Thái Hà
    0906 513 555
    Gửi email
Liên hệ
Liên hệ
  • //aptechbmt.edu.vn/uploads/aptech-buon-ma-thuot-logo_109_62.png N/A
  • Trung tâm đào tạo Lập trình viên quốc tế Aptech Buôn Ma Thuột [APTECH BUON MA THUOT]
  • Địa chỉ: 164 Phan Chu Trinh, Thành Phố Buôn Ma Thuột, Tỉnh Đắk Lắk
  • Điện thoại: 0906 513 555 02623 50 50 55
  • Fax: +842623505055
  • Email:
  • Website: //aptechbmt.edu.vn
Liên kết hữu ích
  • Giới thiệu
  • Khóa học
  • Tin Tức
  • Liên hệ
  • Hỏi đáp
Khóa học lập trình
  • Lập trình viên quốc tế
  • Lập trình PHP
  • Lập trình Java
  • Lập trình Windows Form C#
Kết nối với Aptech Buôn Ma Thuột
Aptech Buôn Ma Thuột
©Bản quyền thuộc về Trung tâm đào tạo Lập trình viên quốc tế Aptech Buôn Ma Thuột.

Thành viên đăng nhập

Hãy đăng nhập thành viên để trải nghiệm đầy đủ các tiện ích trên site
Nhập mã xác minh từ ứng dụng Google Authenticator
Thử cách khác
Nhập một trong các mã dự phòng bạn đã nhận được.
Thử cách khác
Đăng nhập

Video liên quan

Chủ Đề