Trong Java,Tại Sao Phương Thức Main Là Public Static Void?

Phương thức main trong Java là một trong những phương thức đầu tiên mà người học Java tiếp cận khi bắt đầu học ngôn ngữ lập trình Java.Chắc rằng có rất nhiều người đã ít nhất một lần thắc mắt rằng vì sao phương thức main trong Java lại là public static void.Hầu hết những người học về C hay C++ thì thường quen với kiểu phương thức main đơn giản hơn theo kiểu int void main().Nhưng trong ngôn ngữ lập trình Java thì phương thức main hơi khác so với C và C++.Bài viết hôm nay mình sẽ giải thích chi tiết vì sao phương thức main trong Java là public static void.

-Phương thức main trong Java là gì?

Trong chương trình Java,quá trình thực thi bắt đầu từ hàm main.JVM(Java Virtual Machine) sẽ tìm kiếm đến public static void main(String [] args) để thực hiện.Nếu không tìm thấy thì nó sẽ ném ra một ngoại lệ là NoSuchMethodError:main.Phương thức main phải viết theo đúng cú pháp đã quy định – đó dường như là điều bắt buộc mà những người học ngôn ngữ Java buộc phải tuân theo.Tuy nhiêu với những phiên bản Java 1.5 trở lên thì cũng có một cách khác để khai báo phương thức main là public static void main(String … args).

-Tại sao phương thức main lại là static?

Khi phương thức main là static thì máy ảo (JVM) sẽ gọi nó mà không cần tạo bất kì một đối tượng (instance) nào.

Nếu phương thức main không khai báo là static thì JVM bắt buộc phải tạo ra một instance của lớp main,mặt khác hàm dựng (constructor) của lớp main cũng có thể overloaded và có thể có nhiều tham số truyền vào nên máy ảo sẽ không nhận biết được phiên bản nào cần thiết để gọi.Hay nói cách khác là sẽ gây ra sự nhập nhằng cho máy ảo.

Trong Java thì kiểu dữ liệu tham chiếu (reference) thì phải yêu cầu đối tượng đó phải được tạo trước khi sử dụng,nhưng với phương thức tỉnh(static) thì điều đó là không cần vì dữ liệu sẽ được xữ lý vào trong một vùng  nhớ riêng bên trong JVM gọi là context,nó được tạo khi một lớp được xử lý.Và khi hàm main là static thì nó sẽ xử lý bên trong JVM context và sẵn sàng để thực thi.

-Tại sao phương thức main lại là public?

Java cung cấp nhiều kiểu định danh truy cập (access modifier) như private,default,protected,public.Bất kì phương thức hay biến nào được khai báo là public thì nó có thể truy cập từ bên ngoài lớp.Chính vì thế,phương thức main là public thì JVM dể dàng truy cập và thực thi nó.

-Tại sao phương thức main là void?

Vì phương thức main trong Java không cho phép trả về bất kì giá trị nào (phương thức void thì không có giá trị trả về ).

Kết luận (Summary):

1.Hàm main phải declared ( khai báo ) public static void nếu không sẽ không chạy được chương trình Java.

2.JVM sẽ ném lỗi NoSuchMethodException:main nếu nó không tìm thấy hàm main đúng định dạng trong chương trình.Nếu bạn chạy chương trình HelloWord bạn sẽ tìm thấy public static void main(String [] args) bên trong file HelloWord.class.

3.Việc thực thi một chương trình trong Java bắt đầu từ phương thức main.

4.Phương thức main được chạy trong một thread đặc biệt là main thread.

5.Khi bạn thấy lỗi Exception in Thread main:Java.lang.NullPointerException thì lỗi này được ném từ main thread.

6.Bạn có thể khai báo  phương thức main bằng cú pháp là public static void main(String … args).

7.Phương thức main cũng có thể overloaded như bất kì phương thức nào khác trong Java nhưng máy ảo (JVM) sẽ gọi phương thức main theo đúng cú pháp như được chỉ định ở trên.

8.Khối static được thực thi thậm chí trước khi JVM gọi phương thức main.Nó được thực thi khi một lớp được xử lý.

Share this:

  • Twitter
  • Facebook
Like Loading...

Related

Từ khóa » Hàm Main Trong Java