Giới thiệu
Bạn đã bao giờ mở một tệp Java mới và thấy dòng mã này chưa?
java
public static void main(String[] args) {
// mã ở đây
}
Trông có vẻ... phức tạp. Tại sao lại có nhiều từ như vậy? Tại sao không chỉ là main() như trong các ngôn ngữ khác?
Nếu bạn đã từng tự hỏi tại sao phương thức main trong Java lại trông kỳ lạ như vậy, bạn không phải là người duy nhất. Trong bài viết này, tôi sẽ phân tích từng phần để bạn không phải ghi nhớ một cách mù quáng nữa.
📦 Vai Trò Của Phương Thức main
Phương thức main là điểm vào của bất kỳ chương trình Java nào. Khi bạn chạy chương trình, Java Virtual Machine (JVM) sẽ tìm kiếm chữ ký phương thức này để bắt đầu thực thi.
Nếu không có nó, mã của bạn sẽ không có điểm khởi đầu.
🔍 Phân Tích Sự Kỳ Lạ
Hãy giải mã từng từ khóa trong public static void main(String[] args) từng bước:
1. public — Truy Cập Từ Mọi Nơi
public có nghĩa là phương thức này có thể nhìn thấy từ JVM (và mọi thứ khác).
Nếu nó không phải là public, JVM sẽ không thể gọi đến nó. Hãy tưởng tượng như việc để cửa chính mở cho JVM vào chương trình của bạn. 🚪
2. static — Không Cần Đối Tượng
static có nghĩa là phương thức thuộc về lớp, không phải một đối tượng.
JVM có thể gọi nó mà không cần tạo đối tượng trước. Hãy tưởng tượng nếu bạn phải khởi tạo một đối tượng mỗi lần muốn chạy chương trình của mình — thật đau đầu!
3. void — Không Trả Về Giá Trị
void có nghĩa là phương thức không trả về bất cứ điều gì.
JVM chỉ cần một điểm bắt đầu để chạy chương trình của bạn — nó không mong đợi một kết quả trả về.
4. main — Tên Quan Trọng
JVM đặc biệt tìm kiếm một phương thức có tên là main. Nếu bạn đổi tên nó thành start hoặc helloWorld, chương trình của bạn sẽ không chạy.
5. String[] args — Dữ Liệu Từ Dòng Lệnh
Đây là cách mà chương trình của bạn có thể chấp nhận đầu vào từ dòng lệnh.
Ví dụ:
java
public class Main {
public static void main(String[] args) {
System.out.println("Tham số đầu tiên: " + args[0]);
}
}
Nếu bạn chạy:
bash
java Main hello
👉 Kết quả: Tham số đầu tiên: hello
⚡ Tại Sao Nó Trông Kỳ Lạ (So Với Các Ngôn Ngữ Khác)
Trong Python, bạn chỉ cần viết:
python
print("Xin chào, thế giới!")
Trong C, bạn viết:
c
int main() {
return 0;
}
Nhưng Java được thiết kế theo hướng đối tượng từ đầu. Đó là lý do tại sao public static void main(String[] args) phải có thêm các từ khóa — để tuân thủ các quy tắc nghiêm ngặt của Java.
✅ Mẹo Nhớ Nhanh
- 👉 Public → Để JVM vào
- 👉 Static → Không cần đối tượng
- 👉 Void → Không trả về gì
- 👉 Main → Điểm vào của JVM
- 👉 String[] args → Dữ liệu từ thế giới bên ngoài
📚 Tài Nguyên Tham Khảo
Kết Luận
Có, phương thức main trong Java trông kỳ lạ lúc đầu. Nhưng một khi bạn phân tích nó, mỗi từ khóa đều có ý nghĩa rõ ràng.
Lần tới khi bạn thấy nó, bạn sẽ biết:
- Tại sao nó phải là
public - Tại sao nó là
static - Tại sao nó không trả về gì
- Và cách mà nó xử lý dữ liệu bên ngoài
👉 Lượt của bạn: Từ khóa Java nào (final, static, super, v.v.) mà luôn khiến bạn bối rối? Hãy để lại câu hỏi trong phần bình luận — có thể tôi sẽ đề cập đến nó trong bài viết tiếp theo!