Java là một ngôn ngữ lập trình hướng đối tượng. Các phương thức Java được định nghĩa trong lớp và chúng là xương sống trong lập trình của nó.
I) Java Methods
Java Methods là một tập hợp các câu lệnh để xử lý một số tác vụ cụ thể và trả lại phản hồi cho người gọi. Các phương thức cho phép chúng ta viết mã có thể sử dụng lại và chia chương trình của chúng ta thành một số đơn vị công việc nhỏ. Các phương thức trong java thúc đẩy mã sạch và dễ đọc hơn.
II) Các thành phần của Java method
Hãy xem xét các thành phần khác nhau của một phương thức java.
👉 Return type (Kiểu trả về) : Các phương thức Java phải chỉ định kiểu trả về. Chúng có thể là bất kỳ kiểu nguyên thủy hoặc một đối tượng nào. Nếu phương thức không trả về bất cứ thứ gì, thì chúng ta phải sử dụng void làm kiểu trả về.
👉 Tên phương thức : Mọi phương thức trong Java phải có một tên. Nó được sử dụng để xác định phương thức. Chúng ta nên cung cấp các tên mô tả cho phương thức của mình để đưa ra một số ý tưởng về tác vụ được thực hiện bởi phương thức. Nếu bạn đã viết bất kỳ chương trình Java nào, tôi chắc chắn rằng bạn sẽ thấy phương thức java main.
👉 Method Parameters (Tham số phương thức) : Chúng ta có thể truyền các tham số cho một phương thức, chúng được định nghĩa trong ngoặc đơn sau tên phương thức. Thông thường, các câu lệnh phương thức hoạt động dựa trên các tham số này để đạt được nhiệm vụ của chúng.
👉 Danh sách ngoại lệ : Đôi khi một phương thức java có thể ném ra các ngoại lệ. Chúng tôi có thể xác định chúng bằng cách sử dụng từ khóa throws. Nếu có nhiều ngoại lệ có thể được ném ra, thì chúng ta có thể phân tách chúng bằng dấu phẩy.
Hình ảnh dưới đây cho thấy các thành phần khác nhau của một phương thức java main.

Java Method Signature bao gồm tên và các kiểu tham số của nó theo thứ tự đã khai báo. Trong một lớp, có thể có nhiều phương thức nhưng mỗi phương thức phải có một chữ ký khác nhau, nếu không nó sẽ không biên dịch được. Java Method Signature được JRE sử dụng để xác định phương thức chính xác sẽ được gọi khi được gọi trong chương trình của chúng tôi.
public void print(String s) {}
private static int print(String s) {}
Nếu chúng ta có các phương thức trên trong một lớp, nó sẽ không biên dịch vì cả hai phương thức đều có cùng một chữ ký.
public void print(String s, int i) {}
private static int print(int i,String s) {}
Các phương pháp trên là khác nhau vì thứ tự các tham số không giống nhau.
IV) Gọi một Java Method
Hãy xem một ví dụ trong đó chúng ta sẽ tạo một phương thức chính và gọi một số phương thức khác.
public class MathUtils {
public int add
(int x, int y) {
return x + y;
}
public static void main(String
args[]) throws Exception {
MathUtils mu = new
MathUtils();
System.out.println(mu.add(5, 2));
MathUtils.print("Static Method");
}
public static void print(String s)
{}
}
Khi chúng ta chạy chương trình trên, phương thức java main sẽ thực thi và nó sẽ gọi các phương thức MathUtils. Lưu ý rằng nếu phương thức không phải là static, chúng ta cần một đối tượng để gọi nó. Tuy nhiên, nếu phương thức là static thì chúng ta có thể gọi nó đơn giản bằng cách sử dụng tên lớp.
Ngoài ra, hãy lưu ý rằng phương thức println() được định nghĩa trong đối tượng System.out. Đó là một phương thức thư viện java tiêu chuẩn trong đó các phương thức add() và print() trong lớp MathUtils được gọi là phương thức do người dùng định nghĩa.
V) Ví dụ về Java Method
Hãy xem xét một số ví dụ về phương thức java.
👉 Overloaded Method: Nếu một lớp có nhiều phương thức trùng tên, chúng được gọi là overloaded method (phương thức nạp chồng).
public void print(String s) {
System.out.println(s);
}
public void print(String s, int times) {
for (int i=0;
i< times; i++) {
System.out.println(s);
}
}
👉 Method Throwing Exception: Hãy xem một ví dụ mà chúng ta sẽ ném ngoại lệ.
public int divide(int x, int y) throws IllegalArgumentException {
if(y==0) throw
new IllegalArgumentException("Can't divide by 0");
return x/y;
}
👉 Phương thức đệ quy: Khi một phương thức gọi chính nó, nó được gọi là một phương thức đệ quy. Chúng ta nên rất cẩn thận trong việc xác định phương thức đệ quy vì nó có thể đi vào giao diện vô hạn nếu không có điều kiện đầu cuối. Hãy xem xét một phương thức trả về giai thừa của một số bằng cách sử dụng đệ quy.
public static long factorial(long n) {
if (n == 1)
return 1;
else
return (n *
factorial(n - 1));
}
👉 Phương thức gọi phương thức khác: Chúng ta có thể gọi phương thức khác từ một phương thức, hãy xác định lại các phương thức được nạp chồng ở trên bằng cách sử dụng lại phương thức print(String s) .
public void print(String s) {
System.out.println(s);
}
public void print(String s, int times) {
for (int i=0;
i< times; i++) {
print(s);
}
}
👉 Java Interface Static Method: Các Java Interface có thể có phương thức Static từ Java 8 trở đi. Đây là một ví dụ nhỏ về interface static method.
public interface MyData {
static boolean
isNull(String str) {
System.out.println("Interface
Null Check");
return str == null
? true : "".equals(str) ? true : false;
}
}
👉 Java interface default method: Từ Java 8 trở đi, các interface có thể có các triển khai phương thức default.
public interface MyData {
default void
print(String str) {
if (!isNull(str))
System.out.println("MyData
Print::" + str);
}
}
Đọc thêm tại Thay đổi giao diện Java 8 .
👉 Java Getter Setter Method: Java Getter Setter Method là các phương thức thông thường để truy cập và cập nhật các thuộc tính đối tượng. Các phương thức này tạo ra sự trừu tượng và chúng ta có thể hạn chế quyền truy cập vào các thuộc tính khác nhau. Hầu hết các IDE đều hỗ trợ dễ dàng tạo các phương thức getter-setter của một thuộc tính.
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
👉 Các phương thức trừu tượng của Java : Java abstract class và interface có thể khai báo các phương thức mà không cần phần thân của nó. Lớp extend hoặc implement chúng có trách nhiệm cung cấp định nghĩa phương thức. Các phương thức này được khai báo bằng từ khóa abstract trong lớp trừu tượng. Java interface method rất trừu tượng.
public abstract class Person {
public abstract
void work();
}
public interface Shape {
//interface methods are
implicitly abstract and public
void draw();
double getArea();
}
0 Nhận xét