Khi nào dùng int main khi nào dùng void main năm 2024

Cả hai đều là kiểu của hàm main (), nhưng có một sự khác biệt cơ bản giữa int main () và int main (void). Trong bài viết này, chúng ta sẽ thảo luận về điều tương tự dưới dạng bảng. Nhưng trước tiên hãy để chúng tôi biết thêm một chút về main ().

Các chương trình khác nhau bao gồm cả điểm vào cũng như điểm ra. Ở đây, điểm nhập đề cập đến điểm đó từ nơi bắt đầu thực thi chương trình đó. Mặt khác, điểm thoát đề cập đến điểm mà chương trình đó kết thúc quá trình thực thi tổng thể của nó.

Trong trường hợp của C, hệ điều hành (OS) sử dụng hàm main () để xác định điểm bắt đầu chạy và thực thi mã. Vì vậy, hàm main () là điều kiện tiên quyết cho mọi chương trình. Hàm này, giống như hàm C, bao gồm một định nghĩa. Ở đây, int main (), void main () và void main () về cơ bản là các định nghĩa hàm của hàm main (). Hãy để chúng tôi đi vào chi tiết của int main () và int main (void).

“Int main ()” trong C / C ++ là gì?

Các int đây đóng vai trò như một loại của một chính trở lại. Nói cách khác, hàm mong đợi một giá trị của kiểu trả về int (số nguyên) đi qua nó. Nó cũng bao gồm một câu lệnh trả về. Nó trả về giá trị 0 một cách lý tưởng cho giá trị chính sau khi chúng ta hoàn thành một chương trình.

Mục đích chính của việc trả về giá trị 0 vào giá trị chính là làm cho HĐH hiểu rằng việc thực thi chương trình đã thành công. Đối với hệ điều hành, giá trị trả về 0 đề cập đến việc thực thi thành công. Bất kỳ điều gì khác ở đây có nghĩa là một vấn đề có thể đã xảy ra.

Sẽ rất hữu ích nếu việc thực thi chương trình B phụ thuộc rất nhiều vào việc thực thi chương trình A thành công. Trong trường hợp này, việc sử dụng giá trị trả về OS sẽ quyết định và xác định xem chúng ta có nên tiếp tục thực hiện chương trình B hay không.

Về thực tế, chúng ta cần sử dụng int main () trong các hệ thống dựa trên Unix làm hàm chính của chúng ta. Đó là bởi vì Unix OS mong đợi một số giá trị trả về để xác định chương trình thực thi thành công.

“Int main (void)” trong C / C ++ là gì?

Định nghĩa được đề cập ở trên đối với int main () cũng tương tự đối với int main (void). Nhưng chỉ có một sự khác biệt ở đây. Số đối số mà chúng ta có thể chuyển là null cho main trong trường hợp này. Do đó, khi hàm main không nhận bất kỳ đối số nào, về cơ bản nó sẽ sử dụng int main (void).

Chào mừng các bạn trở lại với bài học tiếp theo trong chuỗi bài học Java. Qua 2 bài học chắc hẳn các bạn đã nóng lòng muốn được tìm hiểu những thứ hay ho để có thể tự tay mình code ra những dòng code đầu tiên đúng không nào? Tuy nhiên trong khi mình đang chuẩn bị viết bài đầu tiên đề cập tới Biến và Hằng thì mình lại nảy ra một câu hỏi: “Tại sao ở đây lại phải có public static void main(String [] args)?” thế là mình dành một buổi tối để đi tìm câu trả lời. Và bài học hôm nay mình sẽ giải đáp câu trả lời đó, mình nghĩ rằng sẽ có nhiều bạn không để ý đến vấn đề này nên có lẽ nó khá thú vị đó! Thôi không dài dòng nữa, chúng ta đi tìm hiểu thôi nào…Let’s go!!

Nội dung bài học

  1. Tại sao phải có public static void main(String [] args)?

Nội dung chi tiết

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 lập trình Java tiếp cận, tuy nhiên đối với những bạn sử dụng Netbeans hay Eclipse hầu như sẽ không để ý tới phương thức này vì đơn giản nó được khởi tạo bằng một cái click chuột ngay khi các bạn khai báo class main

Khi nào dùng int main khi nào dùng void main năm 2024

nhưng đối với Intellij thì phải tự tay code khai báo phương thức này. Vậy tại sao phải khai báo phương thức này, không khai báo thì nó sẽ như thế nào? À ở trên mình có đề cập tới một khái niệm của lập trình hướng đối tượng đó chính là phương thức! Các bạn sẽ được tiếp cận với nó nhanh thôi, còn bây giờ chúng ta đi giải đáp thắc mắc bài hôm nay nhé!

Nếu như các bạn đã học về C/C++ thì đều biết rằng trong projects C/C++ có một hàm là int main()

Khi nào dùng int main khi nào dùng void main năm 2024

và ở trong 2 dấu ngoặc nhọn này là return 0 nghĩa là trả về giá trị 0. Thực chất int main() được dùng làm entry point cho chương trình hay điểm vào cho chương trình. int main() là hàm mà tại đó chương trình sẽ bắt đầu thực thi, mọi thứ được viết trong {} sẽ được thực hiện. Giá trị trả về return 0 chính là trạng thái kết thúc của chương trình và do người lập trình quy định (Nếu không tin bạn có thể để nó là return 123456 và chạy thử chương trình), tuy nhiên hầu hết các chương trình trả về mã 0 nghĩa là chương trình kết thúc bình thường. Có vẻ như mình lan man bên C/C++ khá nhiều nhỉ? Quay lại với Java thôi nào!!

Giống như ở C/C++ Java cũng chọn hàm main làm entry point. Quá trình thực thi bắt đầu từ hàm này. Như ở bài học số 1 mình có nói thì Java đưa ra khái niệm máy ảo JVM (Java Virtual Machine). Khi chạy một chương trình JVM sẽ luôn tìm đến public static void main(String [] args) để thực hiện. Nếu như không có dòng này thì sao? Tất nhiên chương trình sẽ xảy ra lỗi rồi.

Phương thức main phải viết đúng cú pháp quy định – đó là điều bắt buộc mà người học ngôn ngữ Java phải tuân theo.

Chúng ta cùng tìm hiểu từng câu chữ trong khai báo phương thức này nhé!

Khi nào dùng int main khi nào dùng void main năm 2024

  • Public: Đây là một access modifier (Khả năng truy cập) public nghĩa là phương thức này có thể truy cập bởi bất cứ lớp nào để có thể dễ dàng truy cập và thực thi.
  • 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ỳ đối tượng nào hay bạn có thể hiểu là JVM dễ dàng tìm thấy phương thức.
  • Void: Vì sao lại 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ề).
  • Main: Tên phương thức.
  • String[] args: nó là tham số cho phương thức với đối số là args. JVM chỉ quan tâm đến tham số là String[] giả sử bạn thay thế String[] bằng Object[] thì JVM sẽ không tim thấy entry piont để thực thi chương trình và sẽ báo lỗi.

Lời Kết

Vậy là bạn đã cùng mình đi qua bài học số 3 này. Tuy chỉ là một bài viết ngẫu hứng của mình nhưng hy vọng cũng cung cấp cho các bạn đâu đó chút kiến thức khá thú vị!!

Mọi thắc mắc đóng góp các bạn có thể để bình luận ở phía dưới hoặc gửi về Email hoặc Inbox Fanpage cho mình!! Thanks