Đoạn trích bài giảng với người cố vấn trong khóa học của Đại học Codegym. Đăng ký cho khóa học đầy đủ.
"Lại là anh, Amigo. Xin chào."
"Có vẻ như bạn không vui khi gặp tôi, Diego?"
"Tôi có ấn tượng rằng bạn nghĩ rằng bạn đã học mọi thứ cần biết về các phương thức trong Java."
"Ồ, tôi không..."
"Ta không nghĩ như vậy! Ngươi một nửa cũng không biết."
"Được, ta không chê...
"Được rồi, nói đủ rồi. Đã đến lúc bắt đầu. Và chúng ta sẽ bắt đầu với một thứ đơn giản. Ví dụ, thực tế là Java có một câu lệnh return . Nó cho phép bạn kết thúc ngay lập tức một phương thức mà nó được gọi. Đây là câu lệnh:
return;
"Thật đơn giản: từ đơn return
theo sau là dấu chấm phẩy. Ngay sau khi chương trình thực thi câu lệnh này, phương thức hiện tại sẽ thoát và phương thức gọi tiếp tục.
"Nếu return
được gọi trong main
phương thức, thì main
phương thức đó sẽ kết thúc ngay lập tức và cùng với nó là toàn bộ chương trình.
Ví dụ:
|
Phương fill thức điền vào một phần của mảng đã truyền với value . Phần của mảng được lấp đầy được xác định bởi các chỉ số from và to . Nếu from nhỏ hơn 0 hoặc nếu to lớn hơn độ dài của mảng thì phương thức kết thúc ngay lập tức. |
"Chương trình trên có một fill
phương thức lấp đầy mảng được truyền cho nó bằng value
. Nó không lấp đầy toàn bộ mảng, chỉ phần được chỉ định bởi các chỉ số from
và to
.
"Khi bắt đầu phương fill
thức, các giá trị đã truyền được kiểm tra để đảm bảo rằng chúng hợp lệ. Nếu from
nhỏ hơn 0 hoặc nếu to
lớn hơn độ dài của mảng, thì phương fill
thức sẽ kết thúc ngay lập tức (thực thi một return
câu lệnh)."
"Hiểu rồi. Câu nói này chỉ có thế thôi sao?"
"Thực ra, return
câu lệnh hữu ích hơn bạn nghĩ. Nó hữu ích đến mức nó được tìm thấy trong hầu hết mọi phương thức trong Java. Và bây giờ tôi sẽ dẫn dắt bạn hiểu tại sao lại như vậy.
Phương pháp có kết quả,void
"Bạn có thể nhớ rằng có những câu lệnh, và có những biểu thức . Sự khác biệt giữa chúng là gì?"
"Nếu tôi không nhầm, một biểu thức, không giống như một câu khẳng định, có một ý nghĩa có thể được sử dụng ở đâu đó."
"Đúng. Và, trong Java, các phương thức cũng có thể có một giá trị . Và đây là một tin rất tốt: các phương thức không chỉ có thể làm điều gì đó dựa trên các tham số đầu vào, mà còn, ví dụ, để đánh giá một thứ gì đó và trả về kết quả của phép tính .
"Nhân tiện, bạn đã gặp phải những phương pháp như vậy:
|
Phương thức này abs() trả về một giá trị gấp đôi |
|
Phương nextInt() thức trả về mộtint |
|
Phương toUpperCase() thức trả về mộtString |
|
Phương copyOf() thức trả về mộtint[] |
"Mỗi phương thức chỉ có thể trả về một giá trị của một loại được xác định trước . Loại trả về được xác định khi phương thức được khai báo:
public static Type name(parameters)
{
method body
}
Đâu name
là tên của phương thức, parameters
là danh sách các tham số của phương thức và type
là kiểu kết quả mà phương thức trả về.
Đối với các phương thức không trả về gì, có một loại trình giữ chỗ đặc biệt: void
.
"Nói cách khác, nếu tôi viết phương thức của mình và không muốn trả lại bất kỳ thứ gì, thì tôi khai báo loại phương thức là void
, và chỉ có vậy thôi sao?"
"Yep. Và, tôi cũng phải nói rằng Java có khá nhiều phương pháp như vậy.
Trả về một kết quả
"Tôi đã tìm ra cách khai báo một phương thức trả về kết quả của phép tính/công việc. Làm cách nào để tôi trả về kết quả từ chính phương thức đó?"
"Đó là một câu hỏi hợp lệ. return
Một lần nữa, câu lệnh này lại giúp chúng ta hiểu rõ vấn đề này. Việc truyền kết quả từ một phương thức có dạng như sau:
return value;
" return
Câu lệnh sẽ kết thúc phương thức ngay lập tức. Và value
là thứ mà phương thức sẽ trả về phương thức gọi khi nó thoát. Loại của value
phải khớp với Type
quy định trong khai báo phương thức. Dưới đây là một số ví dụ để củng cố những gì bạn đã học:
Ví dụ 1. Phương pháp tính tổng hai số nhỏ nhất:
|
Phương thức trả về giá trị nhỏ nhất của hai số. Nếu a < b trả lại a Nếu không trả lại b |
Ví dụ 2. Phương thức nhân đôi chuỗi được truyền cho nó n
lần:
|
Phương thức này nhận hai tham số — một chuỗi và số lần lặp lại chuỗi đó. Một chuỗi trống được tạo cho kết quả trong tương lai. Trong một vòng lặp có times nhiều lần lặp lại, một khoảng trắng và chuỗi str được thêm vào chuỗi result . Chuỗi result được trả về là kết quả của phương thức. |
Ví dụ 3: Phương pháp tính tổng hai số lớn nhất bằng toán tử bậc ba:
|
Phương thức trả về giá trị lớn nhất của hai số. trả lại (nếu a > b , thì a , ngược lại b ) |
"Tuyệt vời. Phương pháp là siêu năng lực mới của tôi!"
"Chỉ khi bạn thực hành đủ trong các nhiệm vụ thực hành. Hết lần này đến lần khác."
GO TO FULL VERSION