Java - Packages: Hướng Dẫn Thân Thiện Về Tổ Chức Mã

Xin chào, người sao tương lai Java! ? Hôm nay, chúng ta sẽ bắt đầu hành trình thú vị vào thế giới các gói Java. Hãy tưởng tượng các gói như những chiếc hộp được tổ chức gọn gàng nơi chúng ta lưu trữ mã của mình. Bằng hết bài hướng dẫn này, bạn sẽ trở thành một chuyên gia gói, sẵn sàng để duy trì mã Java của bạn gọn gàng và hiệu quả!

Java - Packages

Gói Java Là Gì?

Tưởng tượng bạn đang chuyển đến một ngôi nhà mới. Bạn có thể đổ tất cả vật dụng của bạn vào một phòng lớn, phải không? Tất nhiên không! Bạn sẽ tổ chức chúng vào các phòng và tủ khác nhau. Đó chính xác là điều gì các gói Java làm cho mã của chúng ta.

Một gói trong Java là cơ chế để tổ chức các lớp và giao diện liên quan vào một đơn vị duy nhất. Nó như tạo ra các thư mục khác nhau trên máy tính của bạn để duy trì các tệp của bạn được tổ chức.

Tại Sao Sử Dụng Gói?

  1. Tổ chức: Các gói giúp chúng ta nhóm các lớp liên quan lại với nhau.
  2. Xung đột tên: Chúng ngăn chặn xung đột tên giữa các lớp.
  3. Kiểm soát truy cập: Các gói cho phép chúng ta kiểm soát truy cập vào các lớp của mình.

Các Loại Gói Java

Có hai loại gói chính trong Java:

  1. Gói tích hợp sẵn: Những gói này được cài đặt sẵn với Java. Ví dụ: java.lang, java.util, v.v.
  2. Gói do người dùng định nghĩa: Những gói này là chúng ta tạo ra bởi mình.

Hãy tập trung vào các gói do người dùng định nghĩa, đó là nơi thật sự thú vị bắt đầu!

Tạo Một Gói Java

Tạo một gói rất dễ dàng! Dưới đây là cách bạn làm điều đó:

  1. Quyết định tên gói (ví dụ: com.mycompany.myproject).
  2. Thêm một câu khai báo gói ở đầu tệp Java của bạn.
  3. Lưu tệp Java của bạn vào cấu trúc thư mục phù hợp với tên gói của bạn.

Dưới đây là một ví dụ đơn giản:

package com.mycompany.myproject;

public class MyAwesomeClass {
public void sayHello() {
System.out.println("Xin chào từ gói tuyệt vời của tôi!");
}
}

Trong ví dụ này, com.mycompany.myproject là tên gói của chúng ta, và MyAwesomeClass là một lớp trong gói này.

Cấu Trúc Thư Mục Của Một Gói Java

Nhớ rồi cách tôi nói về việc tổ chức vật dụng của bạn trong một ngôi nhà mới? Cấu trúc thư mục của một gói Java hoạt động tương tự. Dưới đây là cách nó trông như thế nào:

src
└── com
└── mycompany
└── myproject
└── MyAwesomeClass.java

Mỗi phần của tên gói trở thành một thư mục, với tệp Java ở cuối cùng.

Biên Dịch Với Gói Java

Để biên dịch lớp được đóng gói của chúng ta, chúng ta cần sử dụng tùy chọn -d với lệnh javac. Điều này cho biết trình biên dịch nơi để đặt các tệp .class đã biên dịch.

javac -d . MyAwesomeClass.java

Lệnh này sẽ tạo ra các thư mục cần thiết và đặt tệp lớp đã biên dịch vào vị trí chính xác.

Nhập Gói Java

Bây giờ khi chúng ta đã tạo ra gói của mình, chúng ta sẽ sử dụng nó trong một lớp khác như thế nào? Đó là nơi câu lệnh import đến nỗi dùng!

import com.mycompany.myproject.MyAwesomeClass;

public class PackageUser {
public static void main(String[] args) {
MyAwesomeClass mac = new MyAwesomeClass();
mac.sayHello();
}
}

Chúng ta cũng có thể nhập tất cả các lớp từ một gói bằng cách sử dụng ký tự đại diện *:

import com.mycompany.myproject.*;

Ví Dụ Gói Java

Hãy để tất cả lại với một ví dụ phong phú hơn. Chúng ta sẽ tạo một gói có tên com.petstore với hai lớp: DogCat.

Trước tiên, hãy tạo Dog.java:

package com.petstore;

public class Dog {
public void bark() {
System.out.println("Gâu! Gâu!");
}
}

Bây giờ, hãy tạo Cat.java:

package com.petstore;

public class Cat {
public void meow() {
System.out.println("Mèo! Mèo!");
}
}

Cuối cùng, hãy tạo một lớp PetStore sử dụng các lớp này:

import com.petstore.*;

public class PetStore {
public static void main(String[] args) {
Dog fido = new Dog();
Cat whiskers = new Cat();

System.out.println("Chào mừng bạn đến với cửa hàng của chúng tôi!");
System.out.print("Fido nói: ");
fido.bark();
System.out.print("Whiskers nói: ");
whiskers.meow();
}
}

Khi bạn chạy lớp PetStore này, bạn sẽ thấy:

Chào mừng bạn đến với cửa hàng của chúng tôi!
Fido nói: Gâu! Gâu!
Whiskers nói: Mèo! Mèo!

Có khó khăn không? Chúng ta đã tạo và sử dụng thành công gói của mình!

Thiết Lập Biến Môi Trường CLASSPATH

Đôi khi Java có thể gặp khó khăn khi tìm gói của bạn. Đó là nơi CLASSPATH ra đời. Nó như đưa Java một bản đồ để tìm mã của bạn.

Để thiết lập CLASSPATH:

Trên Windows:

set CLASSPATH=C:\đường\dẫn\đến\các\lớp\của\bạn

Trên Unix/Linux:

export CLASSPATH=/đường/dẫn/đến/các/lớp/của/bạn

Nhớ để bao gồm thư mục hiện tại trong CLASSPATH của bạn bằng cách thêm một chấm:

set CLASSPATH=.;C:\đường\dẫn\đến\các\lớp\của\bạn

Kết Luận

Xin chúc mừng! Bạn đã bước ra đầu tiên vào thế giới các gói Java. Bạn đã học cách tạo các gói, biên dịch chúng, nhập chúng và thậm chí thiết lập CLASSPATH của bạn.

Nhớ rồi, luyện tập là chìa khóa. Thử tạo các gói của riêng bạn, thử nghiệm với các cấu trúc lớp khác nhau, và sớm bạn sẽ tổ chức mã Java như một chuyên gia!

Chúc mừng mãi mãi, người sáng lập Java tương lai! ??‍??‍?

Credits: Image by storyset