CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnTìm hiểu phương thức main trong Java
Java

Tìm hiểu phương thức main trong Java

CyStack blog 4 phút để đọc
CyStack blog22/07/2025
Locker Avatar

Bao Tran

Web Developer

Locker logo social
Reading Time: 4 minutes

Phương thức main trong Java thường là phương thức đầu tiên bạn tìm hiểu khi bắt đầu làm quen ngôn ngữ này, vì đây chính là điểm khởi đầu (entry point) để thực thi một chương trình Java. Phương thức main có thể chứa thẳng code để chạy hoặc gọi các phương thức khác. Nó cũng có thể được đặt trong bất kỳ class nào của chương trình.

phương thức main trong Java

Các chương trình phức tạp hơn thường có một class chỉ chuyên chứa phương thức main. Tuy class này có thể mang bất kỳ tên nào, thông thường ta hay đặt tên là main.

Trong các ví dụ dưới đây, class chứa phương thức main sẽ có tên là Test:

public class Test {

    public static void main(String[] args){

        System.out.println("Hello, World!");

    }
}

Trong bài viết này, chúng ta sẽ cùng tìm hiểu ý nghĩa của từng thành phần trong phương thức main.

Cú pháp của phương thức main trong Java

Cú pháp của phương thức main luôn có dạng này:

public static void main(String[] args){
    // some code
}

Ta chỉ có thể thay đổi tên của đối số mảng String. Ví dụ, ta có thể đổi args thành my_args. Đối số mảng String có thể được viết theo kiểu String... args hoặc String args[].

public

Access modifier (Từ khóa quy định quyền truy cập) của phương thức main phải là public để JRE (Java Runtime Environment) có thể truy cập và thực thi phương thức này. Nếu một phương thức không phải là public, quyền truy cập của nó sẽ bị hạn chế.

Trong ví dụ sau, phương thức main thiếu access modifier public:

public class Test {

    static void main(String[] args){

        System.out.println("Hello, World!");

    }
}

Khi bạn biên dịch và chạy chương trình, lỗi sau sẽ xuất hiện vì phương thức main không phải là public và JRE không thể tìm thấy nó:

javac Test.java 
java Test
Error: Main method not found in class Test, please define the `main` method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

static

Khi một chương trình Java bắt đầu, chưa có đối tượng nào của class tồn tại. Phương thức main phải là static để JVM (Máy ảo Java) có thể nạp class đó vào bộ nhớ và gọi phương thức main mà không cần tạo một thực thể của class trước.

Trong ví dụ sau, phương thức main thiếu đi từ khóa static:

public class Test {

    public void main(String[] args){

        System.out.println("Hello, World!");

    }
}

Khi bạn biên dịch và chạy chương trình, lỗi sau sẽ xuất hiện vì phương thức main không phải là static:

javac Test.java 
java Test
Error: Main method is not static in class Test, please define the `main` method as:
   public static void main(String[] args)

void

Mọi phương thức Java đều phải khai báo kiểu trả về. Kiểu trả về của phương thức mainvoid vì nó không trả về bất cứ giá trị nào. Khi phương thức main thực thi xong, chương trình Java sẽ kết thúc, do đó ta không cần đến một đối tượng trả về.

Trong ví dụ sau, phương thức main cố gắng trả về một giá trị trong khi kiểu trả về là void:

public class Test {

    public static void main(String[] args){

        return 0;
    }
}

Khi bạn biên dịch chương trình, lỗi sau sẽ xuất hiện vì Java không mong đợi giá trị trả về nào khi kiểu trả về đã được đặt là void:

javac Test.java
Test.java:5: error: incompatible types: unexpected return value
    return 0;
           ^
1 error

main

Phương thức main trong Java luôn được đặt tên là main. Khi một chương trình Java khởi chạy, nó sẽ luôn tìm kiếm một phương thức có tên main.

Ở ví dụ sau đây, phương thức main đã bị đổi tên thành run:

public class Test {

    public static void myMain(String[] args){

        System.out.println("Hello, World!");
    }
}

Khi bạn biên dịch và chạy chương trình, lỗi sau sẽ xuất hiện vì JRE không thể tìm thấy phương thức main trong class:

javac Test.java 
java Test
Error: Main method not found in class Test, please define the `main` method as:
   public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application

String[] args

Phương thức main của Java nhận một đối số (argument) duy nhất thuộc kiểu mảng String. Mỗi chuỗi trong mảng này là một đối số dòng lệnh. Bạn có thể sử dụng các đối số dòng lệnh để tác động đến hoạt động của chương trình hoặc để truyền thông tin cho chương trình tại thời điểm chạy (runtime).

Ví dụ sau minh họa cách in ra các đối số dòng lệnh mà bạn nhập vào khi chạy chương trình:

public class Test {

    public static void main(String[] args){

        for(String s : args){
        System.out.println(s);
        }

    }
}

Khi bạn biên dịch chương trình trên và sau đó chạy nó với một vài đối số dòng lệnh được phân tách bằng dấu cách, các đối số này sẽ được in ra terminal:

javac Test.java 
java Test 1 2 3 "Testing the main method"
1
2
3
Testing the main method

Kết luận

Chúng ta đã tìm hiểu về từng thành phần của phương thức main trong Java để giúp bạn hiểu rõ vai trò của từng từ khóa quan trọng. Kiến thức này sẽ giúp bạn dễ dàng xác định nguyên nhân khi chương trình không chạy hoặc tùy chỉnh điểm khởi chạy cho các mục đích cụ thể. Hãy tiếp tục hành trình học tập và phát triển kỹ năng lập trình Java của bạn bằng cách đọc các bài viết liên quan khác trên trang web của chúng tôi.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất