Khi mới bắt đầu lập trình với Java, có rất nhiều định nghĩa bạn cần phải nắm được. Để không bị quá tải lượng kiến thức, tốt nhất bạn nên tìm hiểu từng chút một trước. Trong bài viết này, bạn hãy cùng CodeGym Hà Nội tìm hiểu về định nghĩa của phương thức trong Java và cách để gọi một phương thức trong Java nhé!

Phương thức là gì?

Trong toán học, có lẽ bạn đã học qua hàm số. Lấy ví dụ, f(y) = y2 là một hàm số trả về giá trị bình phương của y. 

If y = 4, then f(4) = 16
If y = 5, f(5) = 25
and so on.
phuong-thuoc-trong-java-la-gi

Phương thức trong Java là gì?

 

Trong lập trình hướng đối tượng (OOP), phương thức là một thuật ngữ được dùng cho hàm số. Các phương thức liên kết với một lớp (class) và chúng định nghĩa hoạt động của lớp. 

Hai loại phương thức trong Java

Dựa vào việc một phương thức có sẵn trong thư viện chuẩn hay được định nghĩa bởi người dùng, ta phân thành 2 loại phương thức sau đây:

  • Phương thức của thư viện chuẩn
  • Phương thức do người dùng định nghĩa

>> Đọc thêm: Khóa học lập trình Java

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à những phương thức được tích hợp trong Java, chúng hoàn toàn có sẵn để có thể sử dụng. Các thư viện đính kèm với thư viện Class (JCL) trong tệp lưu trữ Java (*.jar) cùng với JVM và JRE. 

Lấy ví dụ, 

  • abs() là 1 phương thức trong thư viện java.lang.Math. Hàm này  trả về giá trị tuyệt đối của tham số.
  • size() là 1 phương thức trong thư viện java.util.ArrayList. Hàm này  trả về số lượng phần tử trong mảng.

Sau đây là một ví dụ:

/**
* hanoi.codegym.vn - Hệ thống đào tạo lập trình hiện đại
* @author codegymhanoi
* Contact: hanoi@codegym.vn
* Fanpage: https://www.facebook.com/codegym.hn
* Website: https://hanoi.codegym.vn
*/

public class Main {
    public static void main(String[] args) {
        // using the sqrt() method
        System.out.print("Square root of 9 is: " + Math.sqrt(9));
    }
}

Kết quả khi bạn chạy chương trình là:

Square root of 9 is: 3.0

Phương thức do người dùng định nghĩa

Chúng ta cũng có thể định nghĩa các phương thức bên trong một lớp (class) theo ý muốn. Những phương thức này được gọi là phương thức do người dùng định nghĩa.

Cách để tạo một phương thức trong Java

Để giải thích cú pháp của một phương thức, chúng ta hãy xem ví dụ sau:

public static boolean soSanh (int a, int b) {
  // thân của phương thức
}

Ở đây:

  • public static : Là modifier.
  • boolean: Kiểu trả về
  • soSanh: Tên phương thức
  • a, b: Các tham số chính thức
  • int a, int b: Danh sách các tham số và kiểu dữ liệu của chúng.

Các phương thức cũng còn được biết như các Procedure (thủ tục) hoặc Function (hàm):

  • Procedure: Chúng không trả về bất kỳ giá trị nào.
  • Function: Chúng trả về giá trị.

Sự định nghĩa phương thức bao gồm một header và phần thân phương thức. Tương tự như sau:

modifier kieuTraVe tenPhuongThuc (Danh sach tham so) {
 // Than phuong thuc
}

Cú pháp trên bao gồm:

  • modifier: Nó định nghĩa kiểu truy cập của phương thức và nó là tùy ý để sử dụng.
  • kieuTraVe: Phương thức có thể trả về một giá trị.
  • tenPhuongThuc: Đây là tên phương thức.
  • Danh sach tham so: Danh sách các tham số, nó là kiểu, thứ tự, và số tham số của một phương thức. Đây là tùy ý, phương thức có thể không chứa tham số nào.
  • Than phuong thuc: Phần thân phương thức định nghĩa những gì phương thức đó thực hiện với các lệnh.

Ví dụ:

Đây là code nguồn của phương thức getMod() được định nghĩa ở trên. Phương thức này nhận hai tham số là num1 và num2 và trả về số dư của hai số:

/** Vi du code tra ve so du hai so */
public static int getMod(int n1, int n2) {
   int mod = n1 % n2;
   return mod; 
}

Cách gọi một phương thức trong Java

Để có thể sử dụng một phương thức, chúng ta cần phải gọi nó. Có hai loại một phương thức, ví dụ: phương thức trả về một giá trị hoặc phương thức không trả về giá trị nào.

Khi một chương trình gọi phương thức, điều khiển chương trình truyền tín hiệu tới phương thức được gọi. Phương thức được gọi này sau đó trả về điều khiển tới caller trong hai điều kiện, khi:

  • Lệnh return được thực thi.
  • Tiến tới dấu ngoặc đóng cuối phương thức.

Phương thức trả về void được xem như là gọi tới một lệnh. Hãy xem xét ví dụ sau:

System.out.println("hello codegym!");

Ví dụ sau minh họa về phương thức trả về giá trị:

int result = substract(1000, 10);

Ví dụ:

Ví dụ sau minh họa cách định nghĩa một phương thức và cách để gọi nó:

public class FindMod{
   public static void main(String[] args) {
      int x = 17;
      int y = 5;
      int z = getMod(x, y);
      System.out.println("so du cua x va y la: " + z);
   }
   /** Tra ve so du cua hai so */
   public static int getMod(int n1, int n2) {
      int mod = n1 % n2;
      return mod; 
   }
}

Nó sẽ cho kết quả là:

so du cua x va y la: 2

Giá trị trả về của phương thức

Một phương thức có thể có giá trị trả về, sử dụng từ khóa return trong thân phương thức để kết thúc và trả về giá trị, xem ví dụ trong phương thức sau:

// Phương thức area() trả về kiểu int là diện tích của hình chữ nhật có 2 cạnh là val1, val2
static int area (int val1, int val2) {
    // phương thức kết thúc khi gặp return
    return val1 * val2;
}

Ta cần chú ý, kiểu trả về phải được định nghĩa trước tên phương thức, như trên đó là kiểu int.

Ví dụ sử dụng phương thức trên

class MyClass {
    static int mul(int val1, int val2) {
        return val1 * val2;
    }
    public static void main(String[ ] args) {
        // giá trị trả về của mul lưu vào biến y
        int y = mul(3, 6);
     System.out.println(y);
    }
}
// Outputs "18"

Trong ví dụ trên, biến y đã được gán vào giá trị trả về của phương thức.

Khi phương thức không có giá trị trả về thì chúng ta cần phải khai báo với từ khóa void

// trả về giá trị kiểu int, số 6
static int returnSix() {
    return 6;
}
// phương thức có tham số nhưng không có giá trị trả về
static void sayHelloTo(String name) {
    System.out.println("Hello " + name);
}

Từ khóa void trong Java

Khi các phương thức không trả về giá trị, chúng ta sẽ dùng từ khóa void. Trong ví dụ dưới đây, chúng ta đang xem xét một phương thức void methodRankPoints. Phương thức này không trả về bất kỳ giá trị nào, nó là một phương thức void. Cần một câu lệnh để gọi một phương thức void, tức là methodRankPoints(3);. Đó là một câu lệnh Java kết thúc bằng dấu chấm phẩy như trong ví dụ dưới đây.

tu-khoa-void-trong-java

Từ khóa void trong Java

Ví dụ:

public class Main {
    public static void main(String[] args) {
        methodRankPoints(3);
    }
    public static void methodRankPoints(double points) {
        if (points >= 3.5) {
            System.out.println("Rank: A");
        } else if (points >= 2.5) {
            System.out.println("Rank: B");
        } else {
            System.out.println("Rank: C");
        }
    }
}

Nó cho kết quả như sau:

Rank: B

Ví dụ: Một chương trình đầy đủ của phương thức trong Java

Cùng xem một phương thức hoạt động bằng cách định nghĩa một lớp Java.

/**
* hanoi.codegym.vn - Hệ thống đào tạo lập trình hiện đại
* @author codegymhanoi
* Contact: hanoi@codegym.vn
* Fanpage: https://www.facebook.com/codegym.hn
* Website: https://hanoi.codegym.vn
*/
import java.util.Date;
public class Main {
    public static void main(String[] args) {
        System.out.println("Call method printCurrentTime(): ");
        printCurrentTime();
        System.out.println("Method was executed successfully!");
    }
    public static void printCurrentTime() {
        System.out.println("Current date and time is: " + new Date());
    }
}

Nó cho kết quả như sau:

Call method printCurrentTime(): 
Current date and time is: Sun Nov 20 19:07:40 ICT 2022
Method was executed successfully!

Phương thức printCurrentTime() ở 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 printCurrentTime() là phương thức tĩnh(static).

Tổng kết

Phương thức có thể hiểu là một tập hợp các khối lệnh (code) để thi hành một chức năng nào đó và nó được định nghĩa trong thân của lớp (class). Bài viết trên đã giới thiệu về định nghĩa của phương thức trong Java cùng với đó là những ví dụ cụ thể của cách tạo và cách gọi một phương thức. Mong rằng qua bài viết trên, bạn có thể hiểu rõ hơn phần nào về phương thức trong Java. Hãy cùng tìm hiểu thêm về Java và các ngôn ngữ lập trình khác qua các khóa học lập trình tại CodeGym Hà Nội nhé!