Câu trả lời:
Đó là ba điều hoàn toàn khác nhau:
public
có nghĩa là phương thức có thể nhìn thấy và có thể được gọi từ các đối tượng khác thuộc các loại khác. Lựa chọn thay thế khác là private
, protected
, package
và package-private
. Xem ở đây để biết thêm chi tiết.
static
có nghĩa là phương thức được liên kết với lớp, không phải là một thể hiện (đối tượng) cụ thể của lớp đó. Điều này có nghĩa là bạn có thể gọi một phương thức tĩnh mà không cần tạo một đối tượng của lớp.
void
có nghĩa là phương thức không có giá trị trả về. Nếu phương thức trả về, int
bạn sẽ viết int
thay vìvoid
.
Sự kết hợp của cả ba điều này thường thấy nhất trên main
phương pháp mà hầu hết các hướng dẫn sẽ bao gồm.
Ba từ có ý nghĩa trực giao.
public
có nghĩa là phương thức sẽ hiển thị từ các lớp trong các gói khác.
static
có nghĩa là phương thức này không được đính kèm với một thể hiện cụ thể và nó không có " this
". Nó ít nhiều là một chức năng.
void
là loại trả về. Nó có nghĩa là "phương pháp này không trả về gì".
Công chúng từ khóa là một specifier truy cập, cho phép các lập trình viên để kiểm soát khả năng hiển thị của các thành viên lớp. Khi một thành viên của lớp được đi trước bởi công chúng, thì thành viên đó có thể được truy cập bằng mã bên ngoài lớp mà nó được khai báo. (Đối lập với công khai là riêng tư, điều này ngăn thành viên không được sử dụng bởi mã được xác định bên ngoài lớp.)
Trong trường hợp này, main( )
phải được khai báo là công khai, vì nó phải được gọi bằng mã bên ngoài lớp khi chương trình được khởi động.
Từ khóa tĩnh cho phép main( )
được gọi mà không cần phải khởi tạo một thể hiện cụ thể của lớp. Điều này là cần thiết vìmain( )
được trình thông dịch Java gọi trước khi bất kỳ đối tượng nào được tạo.
Từ khóa void chỉ đơn giản là thông báo cho trình biên dịch main( )
không trả về giá trị. Như bạn sẽ thấy, các phương thức cũng có thể trả về các giá trị.
Nó có nghĩa là:
public
- nó có thể được gọi từ bất cứ đâustatic
- nó không có bất kỳ trạng thái đối tượng nào, vì vậy bạn có thể gọi nó mà không cần khởi tạo một đối tượngvoid
- nó không trả lại bất cứ thứ gìBạn nghĩ rằng việc thiếu lợi nhuận có nghĩa là nó không hoạt động nhiều, nhưng nó có thể đang lưu những thứ trong cơ sở dữ liệu chẳng hạn.
Nó có nghĩa là ba điều.
Đầu tiên public
có nghĩa là bất kỳ đối tượng khác có thể truy cập nó.
static
có nghĩa là lớp mà nó cư trú không phải được khởi tạo trước khi hàm có thể được gọi.
void
có nghĩa là hàm không trả về giá trị.
Vì bạn chỉ đang học, đừng lo lắng về hai cái đầu tiên quá nhiều cho đến khi bạn tìm hiểu về các lớp học, và cái thứ ba sẽ không còn quan trọng cho đến khi bạn bắt đầu viết các chức năng (ngoài chính là).
Lời khuyên tốt nhất tôi nhận được khi học lập trình, và điều mà tôi truyền lại cho bạn, là đừng lo lắng về những chi tiết nhỏ bạn không hiểu ngay lập tức. Nhận một cái nhìn bao quát về các nguyên tắc cơ bản, sau đó quay lại và lo lắng về các chi tiết. Lý do là bạn phải sử dụng một số thứ (như public static void
) trong các chương trình đầu tiên của mình, điều này thực sự không thể giải thích được nếu không dạy bạn về một loạt các thứ khác trước. Vì vậy, hiện tại, hãy chấp nhận rằng đó là cách nó được thực hiện và tiếp tục. Bạn sẽ hiểu chúng trong thời gian ngắn.
Xem xét các lớp cấp cao điển hình. Chỉ có thể sử dụng công cụ sửa đổi truy cập công khai và không có công cụ sửa đổi ở cấp cao nhất để bạn sẽ thấy công khai hoặc bạn sẽ không thấy bất kỳ công cụ sửa đổi truy cập nào cả.
`static`` được sử dụng vì bạn có thể không có nhu cầu tạo một đối tượng thực tế ở cấp cao nhất (nhưng đôi khi bạn sẽ muốn để không phải lúc nào bạn cũng có thể nhìn thấy / sử dụng tĩnh. Có những lý do khác khiến bạn không bao gồm tĩnh quá nhưng đây là một điển hình ở cấp cao nhất.)
void
được sử dụng vì thông thường bạn sẽ không trả về giá trị từ cấp cao nhất (lớp). (đôi khi bạn sẽ muốn trả về một giá trị khác ngoài NULL
khoảng trống có thể không luôn luôn được sử dụng, đặc biệt là trong trường hợp khi bạn đã khai báo, khởi tạo một đối tượng ở cấp cao nhất mà bạn đang gán một số giá trị).
Tuyên bố miễn trừ trách nhiệm: Bản thân tôi là người mới nên nếu câu trả lời này sai trong bất kỳ cách nào, xin đừng treo cổ tôi. Ban ngày tôi là một nhà tuyển dụng công nghệ không phải là nhà phát triển; mã hóa là sở thích của tôi. Ngoài ra, tôi luôn cởi mở với những lời chỉ trích mang tính xây dựng và thích tìm hiểu vì vậy xin vui lòng chỉ ra bất kỳ lỗi nào.
public
có nghĩa là bạn có thể truy cập lớp từ bất cứ nơi nào trong lớp / đối tượng hoặc bên ngoài gói hoặc lớpstatic
có nghĩa là hằng số trong đó khối lệnh chỉ được sử dụng 1 lầnvoid
có nghĩa là không có loại trả lạiPublic
- có nghĩa là lớp (chương trình) có sẵn để sử dụng bởi bất kỳ lớp nào khác.
Static
- tạo ra một lớp. Cũng có thể được áp dụng cho các biến và phương thức, biến chúng thành các phương thức / biến lớp thay vì chỉ cục bộ cho một thể hiện cụ thể của lớp.
Void
- điều này có nghĩa là không có sản phẩm nào được trả về khi lớp hoàn thành xử lý. So sánh điều này với các lớp của trình trợ giúp cung cấp giá trị trả về cho lớp chính, các lớp này hoạt động giống như các hàm; những điều này không có khoảng trống trong tuyên bố.
static
có nghĩa là phương thức được liên kết với lớp, không phải là một thể hiện (đối tượng) cụ thể của lớp đó. Điều này có nghĩa là bạn có thể gọi một phương thức tĩnh mà không cần tạo một đối tượng của lớp. Do sử dụng static
từ khóa main()
là phương thức đầu tiên của bạn được gọi ..
static
không cần bất kỳ đối tượng nào ... vì vậy, main( )
được trình thông dịch Java gọi trước khi bất kỳ đối tượng nào được tạo.
public
,static
,private
, vv) thì kiểu trả về (void
trong trường hợp này).