Trong bài viết này, chúng ta sẽ tìm hiểu về các phương thức trong Java - cách định nghĩa và sử dụng chúng trong chương trình của bạn.
Phương thức là gì?
Trong toán học, chúng ta đã học về hàm số. Ví dụ, f(x) = x^2 là một hàm số trả về giá trị bình phương của x. Nếu x = 2, thì f(2) = 4. Nếu x = 3, f(3) = 9 và cứ tiếp tục.
Tương tự, trong lập trình, một hàm số là một khối code thực hiện một tác vụ nhất định. Trong lập trình hướng đối tượng, chúng ta sử dụng thuật ngữ "phương thức" thay vì "hàm số". Các phương thức liên kết với một class và định nghĩa hoạt động của class.
Các loại phương thức trong Java
Dựa vào việc một phương thức được định nghĩa bởi người dùng hay có sẵn trong thư viện chuẩn, có hai loại phương thức:
- Phương thức của thư viện chuẩn
- Phương thức do người dùng định nghĩa
Phương thức của thư viện chuẩn
Các phương thức của thư viện chuẩn là các phương thức tích hợp trong Java hoàn toàn có sẵn để sử dụng. Các thư viện được đính kèm trong thư viện Class (JCL) trong tệp lưu trữ Java (*.jar) cùng với JVM và JRE.
Ví dụ, print()
là một phương thức của java.io.PrintSteam
. Lệnh print("...")
in chuỗi bên trong dấu ngoặc kép. sqrt()
là một phương thức của class Math
. Nó trả về giá trị căn bậc hai của một số.
Phương thức do người dùng định nghĩa
Bạn cũng có thể định nghĩa các phương thức bên trong một class theo ý muốn. Các phương thức này được gọi là "phương thức do người dùng định nghĩa".
Làm thế nào để tạo ra một phương thức do người dùng định nghĩa?
Trước khi bạn có thể sử dụng (gọi) một phương thức, bạn cần định nghĩa nó.
Đây là cách bạn định nghĩa một phương thức:
public static void myMethod() {
System.out.println("My Function called");
}
Ở đây, một phương thức có tên là myMethod()
được định nghĩa. Bạn có thể thấy ba từ khóa public
, static
và void
trước tên phương thức.
- Từ khóa
public
cho phép phương thức trở thành phương thức public. Các thành viên public có thể được truy cập từ bên ngoài class. - Từ khóa
static
biểu thị rằng phương thức có thể được truy cập mà không cần tạo đối tượng của class. - Từ khóa
void
nhấn mạnh rằng phương thức này không trả về bất kỳ giá trị nào.
Trong chương trình trên, phương thức của chúng ta không chấp nhận bất kỳ đối số nào. Do đó, có các dấu ngoặc rỗng ()
. Bạn sẽ tìm hiểu về việc truyền đối số vào một phương thức sau đây.
Cú pháp hoàn thiện cho việc định nghĩa một phương thức trong Java là:
modifier static returnType nameOfMethod (parameters) {
// method body
}
Trong đó,
modifier
- định nghĩa loại truy cập phương thức này làpublic
hayprivate
, v.v.static
- nếu bạn sử dụng từ khóastatic
trong một phương thức thì nó sẽ trở thành một phương thức tĩnh. Phương thức tĩnh được khai báo mà không cần phải tạo một instance của class.returnType
- phương thức có thể trả về một giá trị. Nó có thể trả về các kiểu dữ liệu gốc (int, float, double, v.v.) hoặc các đối tượng gốc (String, Map, List, v.v.) hoặc bất kỳ đối tượng nào khác được tích hợp hoặc được người dùng định nghĩa. Nếu phương thức không trả về bất kỳ giá trị nào, kiểu trả về của nó sẽ là rỗng (void
).nameOfMethod
- tên của phương thức. Bạn có thể đặt tên phương thức theo các tác vụ mà nó thực hiện. Ví dụ,calculateInterest
,calculateArea
, v.v.parameters
- Các tham số là các giá trị được truyền vào một phương thức. Bạn có thể truyền bất kỳ số nào của đối số vào một phương thức.method body
- Nó định nghĩa phương thức thực sự làm gì, cách các tham số được thao tác với các câu lệnh lập trình và giá trị nào được trả về. Các mã bên trong dấu ngoặc nhọn{}
là phần thân của phương thức.
Làm thế nào để gọi một phương thức trong Java?
Bây giờ bạn đã định nghĩa một phương thức, bạn cần sử dụng nó. Đối với điều đó, bạn phải gọi phương thức đó. Và đây là cách thực hiện:
myMethod();
Lệnh này gọi phương thức myMethod()
mà đã được khai báo trước đó.
- Trong khi Java đang thực thi code chương trình, nó gặp phương thức
myMethod()
trong đoạn code. - Việc thực thi sau đó sẽ chuyển sang phương thức
myMethod()
, và sẽ thực thi các code bên trong phương thức này. - Sau khi hoàn thành việc thực thi các code này, chương trình sẽ quay lại trạng thái ban đầu và thực thi các lệnh tiếp theo.
Ví dụ: Một chương trình đầy đủ về phương thức trong Java
Hãy xem một phương thức hoạt động bằng cách định nghĩa một class Java.
class Main {
public static void main(String[] args) {
System.out.println("About to encounter a method.");
// gọi phương thức myMethod()
myMethod();
System.out.println("Method was executed successfully!");
}
// định nghĩa phương thức
private static void myMethod(){
System.out.println("Printing from inside myMethod()!");
}
}
Khi bạn chạy chương trình, kết quả sẽ là:
About to encounter a method. Printing from inside myMethod(). Method was executed successfully!
Phương thức myMethod()
ở chương trình trên không chấp nhận bất kỳ đối số nào. Đồng thời, phương thức này cũng không trả về bất kỳ giá trị nào (kiểu trả về là rỗng - void
).
Chú ý rằng chúng ta đã gọi phương thức mà không tạo bất kỳ đối tượng nào của class cả. Điều này là có thể bởi vì phương thức myMethod()
là phương thức tĩnh (static
).
Một ví dụ khác về phương thức không phải là phương thức tĩnh và ở bên trong một class khác.
class Main {
public static void main(String[] args) {
// tạo object của class Output
Output obj = new Output();
System.out.println("About to encounter a method.");
// gọi phương thức myMethod() của class Output
obj.myMethod();
System.out.println("Method was executed successfully!");
}
}
class Output {
// public: phương thức có thể được gọi từ bên ngoài class
public void myMethod() {
System.out.println("Printing from inside myMethod().");
}
}
Khi bạn chạy chương trình, kết quả sẽ là:
About to encounter a method. Printing from inside myMethod(). Method was executed successfully!
Lưu ý rằng lúc đầu chúng ta đã tạo ra instance của class Output
, sau đó phương thức được khai báo sử dụng đối tượng obj
. Điều này là do phương thức myMethod()
không phải là một phương thức tĩnh.
Các phương thức trong Java với đối số và giá trị trả về
Một phương thức trong Java có thể không có hoặc có nhiều tham số. Và, chúng có thể trả lại một giá trị.
Ví dụ: Trả về giá trị từ phương thức
Hãy xem một ví dụ về phương thức trả về một giá trị.
class SquareMain {
public static void main(String[] args) {
int result;
// gọi phương thức và lưu giá trị trả về
result = square();
System.out.println("Squared value of 10 is: " + result);
}
public static int square() {
// lệnh trả về
return 10 * 10;
}
}
Khi bạn chạy chương trình, kết quả đầu ra sẽ là:
Squared value of 10 is: 100
Trong đoạn code trên, phương thức square()
không chấp nhận bất kỳ đối số nào và luôn trả về giá trị 10^2.
Chú ý, kiểu trả về của phương thức square()
là int
. Có nghĩa là, phương thức luôn trả về một giá trị nguyên.
Như bạn có thể thấy, phạm vi của phương thức này bị giới hạn vì nó luôn trả về cùng một giá trị.
Phương thức làm cho code dễ đọc hơn và dễ gỡ lỗi hơn. Với việc sử dụng phương thức, bạn có thể viết một lần và sử dụng nhiều lần. Bạn không cần phải viết lại toàn bộ mã mỗi lần. Bên cạnh đó, việc đặt tên phương thức theo các tác vụ mà nó thực hiện giúp cho code dễ đọc hơn và dễ hiểu hơn.
Như vậy, đó là những điều cơ bản về các phương thức trong Java. Hy vọng rằng bạn hiểu rõ hơn về việc định nghĩa và sử dụng phương thức trong lập trình Java.