Phương thức main trong Java luôn là phương thức đầu tiên bạn có thể học khi bắt đầu phát triển phần mềm bằng ngôn ngữ Java bởi vì nó là điểm khởi đầu của mọi chương trình được phát triển bằng ngôn ngữ Java. Phương thức main có thể chứa mã nguồn để thực thi hoặc gọi tới các phương thức khác và nó có thể được đặt ở bất kỳ lớp nào trong chương trình của bạn. Nhiều chương trình phức tạp thường chỉ có duy nhất một lớp có chứa phương thức main. Phương thức main nhận vào tham số để thực thi và sẽ không trả về kết quả sau khi thực thi.

Trong ví dụ dưới đây, chúng ta có thể thấy phương thức main trong lớp Main

public class Main {

    public static void main(String[] args){

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

}

Trong bài viết này, chúng ta sẽ tìm hiểu về phương thức main trong Java.

1. Cú pháp của phương thức main

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

public static void main(String[] args){

// some code

}

Bạn chỉ có thể thay tên của mảng String các biến đầu vào. Ví dụ như, bạn có thể đổi tên biến args thành myStringArgs. Mảng String có thể được viết lại thành String... args hoặc String args[].

Xem thêm bài viết về ngôn ngữ lập trình Java:

<a href=""https://stringee.com/vi/blog/post/Linkedlist-trong-java"" target=""_blank"" rel=""noopener noreferrer"">- LinkedList trong java và ví dụ cụ thể
<a href=""https://stringee.com/vi/blog/post/mang-trong-java"" target=""_blank"" rel=""noopener noreferrer"">- Khai báo và sử dụng mảng các đối tượng trong Java

1.2. public

Access modifier của phương thức main cần là public để JRE có thể truy cập và chạy phương thức này. Nếu một phương thức không phải là public thì quyền truy cập của nó sẽ bị hạn chế. Trong ví dụ dưới đây, phương thức main bị thiếu access modifier public:

public class Test {

    static void main(String[] args){

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

}

Khi chúng ta thực hiện đóng gói và chạy chương trình, nó sẽ báo lỗi vì phương thức main không được phép truy cập từ bên ngoài. Do đó, JRE không thể tìm thấy nó và trả lỗi như sau:

Kết quả chạy chương trình:

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

1.3. static

Khi một phần mềm Java được khởi chạy, chưa có đối tượng nào được khởi tạo từ các lớp trong chương trình. Phương thức main phải là static để JVM có thể tải lớp vào trong bộ nhớ của nó và gọi phương thức main mà không cần tạo một đối tượng của lớp chứa phương thức này. Trong ví dụ dưới đây, phương thức main không có modifier static

public class Test {

    public void main(String[] args){

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

    }

}

Điều này khiến cho chương trình không thể được đóng gói và khởi chạy, khi bạn cố tình chạy chương trình, chúng ta sẽ thu được lỗi sau:

Error: Main method is not static in class Test, please define the main method as:

   public static void main(String[] args)

1.4. void

Các phương thức Java đều phải định nghĩa một kiểu trả về. Phương thức main của Java đòi hỏi kiểu trả về là void vì nó không trả lại bất cứ kết quả gì sau khi thực hiện xong chương trình. Khi phương thức main hoàn thành chu trình chạy của nó, chương trình Java sẽ kết thúc, vì vậy việc trả lại một kết quả cho chương trình cũng trở nên không cần thiết.

1.5. main

Phương thức main trong Java luôn 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 phương thức main. Trong ví dụ dưới đây, chúng ta sẽ thử đổi tên phương thức main thành main2 và xem kết quả của chương trình:

public class TestChangeMain {

    public static void main2(String[] args){

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

    }

}

Và như đã nói ở trên, nó sẽ gặp lỗi.

1.6. String [] args

Phương thức main trong Java chỉ chấp nhận một biến có dạng là mảng String. Từng chuỗi trong mảng là một biến thực thi của chương trình Java. Bạn hoàn toàn có thể sử dụng command line để chạy chương trình và truyền các biến đầu vào cho phương thức main trong quá trình chạy phần mềm. Ví dụ sau đây sẽ minh họa cách bạn có thể in ra màn hình các biến bạn truyền vào cho chương trình qua command line:

public class TestCommandLineMain {

    public static void main(String[] args){

        for(String val : args){

            System.out.println(val);

        }

    }

}

Khi thực hiện compile và chạy chương trình, bạn có thể thử thực hiện như sau:

// sử dụng javac để compile file java thành file java bytecode

javac TestCommandLineMain.java

java TestCommandLineMain 1 2 3 "Testing the main method"

Kết quả thu được như sau:

1

2

3

Testing the main method

2. Kết luận:

Phương thức main là khởi đầu cho mọi chương trình Java, hiểu biết về phương thức này là điều quan trọng mà lập trình viên Java nào cũng nên biết. Trong bài viết này, chúng ta đã tìm hiểu về phương thức main trong Java, về các thành phần cũng như các điều cần lưu ý khi sử dụng phương thức này.

Stringee API cung cấp các tính năng như gọi thoại, gọi video, tin nhắn chat, SMS hay tổng đài chăm sóc khách hàng (CSKH) có thể được nhúng trực tiếp vào các ứng dụng/website của doanh nghiệp nhanh chóng. Điều này giúp tiết kiệm đến 80% thời gian và chi phí cho doanh nghiệp, trong khi nếu tự phát triển các tính năng này có thể mất từ 1 - 3 năm.