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

Phương thức hay còn được gọi là Method trong Java. Ta có thể hiểu một cách đơn giản nhất thì nó chính là một cách để thực hiện hành động. Phương thức của lớp chính là phương thức của đối tượng. Các phương thức nó rất giống với hàm nên nó cũng có các tính chất như hàm đó chỉ khác là phương thức nằm trong một lớp đối tượng và muốn gọi đến nó thì phải thông qua lớp đối tượng này.

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

2. Phương thức của thư viện chuẩn trong Java

Các phương thức của thư viện chuẩn là các phương thức được tích hợp trong Java hoàn toàn có sẵn để 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.

Ví dụ:

  • print() là một phương thức của java.io.PrintSteam . Lệnh The print(“…”) in chuỗi bên trong dấu ngoặc kép.
  • sqrt() là một phương thức của class toán. Nó trả về giá trị căn bậc hai của một số.
public class Main {
    public static void main(String[] args) {
    
        // using the sqrt() method
        System.out.print("Căn bậc hai của 4 là: " + Math.sqrt(4));
    }
}

Kết quả

Căn bậc 2 của 4 là: 2.0

3. Phương thức do người dùng tự định nghĩa trong Java

Ta 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.

Khai báo một phương thức ta có thể dùng cú pháp sau:

assess_modifier option method_type name(arguments) {
    // code
}

Trong đó:

  • assess_modifier là phạm vi truy cập của phương thức. assess_modifier sẽ là 1 trong 4 giá trị sau: public , protected , private , default hoặc bỏ trống
  • option là loại của phương thức. option có thể là final hoặc static hoặc bỏ trống.
  • method_type là kiểu dữ liệu trả về của phương thức. Nếu phương thức không trả về dữ liệu thì method_type sẽ là void.
  • name là tên của phương thức.
  • arguments là các tham số truyền vào thương thức.

Ví dụ:

class Main{
  public static void main(String[] args){

      //Tạo một rô bốt cụ thể từ class Robot
    Main robot = new Main();

    robot.hello(); //Chạy phương thức Hello
    robot.bye(); //Chạy phương thức bye
  }

  //Khai báo phương thức hello
  void hello(){
    System.out.println("Hello");
  }

  //Khai báo phương thức bye
  void bye(){
    System.out.println("Bye");
  }
}

Kết quả

Hello
Bye

Hai phương thức byehello có cấu trúc giống nhau và khá đơn giản, nên chúng ta hoàn toàn có thể nhóm chúng lại trong một phương thức duy nhất. Tuy nhiên trong các chương trình với các phương thức xử lý phức tạp, thì việc chia nhỏ các phương thức ra là điều cần thiết.

class Main{
  public static void main(String[] args){
    Main robot = new Main();
    robot.greeting("Hello");
    robot.greeting("Bye");
  }

  void greeting(String msg){
    System.out.println(msg);
  }
}

Kết quả

Hello
Bye

4. Gọi một phương thức trong Java

Sau khi định nghĩa phương thức ta cần sử dụng nó. Để sử dụng thì ta chỉ cần gọi phương thức ra là xong. Cách gọi cũng rất đơn giản chỉ cần viết tên phương thức theo sau là dấu ngoặc đơn và dấu chấm phẩy. Ví dụ như Method();

Ví dụ:

public class Main {
  static void myMethod() {
    System.out.println("Hello World!");
  }

  public static void main(String[] args) {
    myMethod();
  }
}

Trong chương trình khi gặp myMethod(); thì việc thực thi sẽ tự động chuyển sang và thực thi code bên trong phương thức. 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.

5. Chương trình đầy đủ

Ví dụ 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("Sắp gặp phải một phương thức.");

        // method call
        myMethod();

        System.out.println("Phương thức đã được thực thi thành công!");
    }

    // method definition
    private static void myMethod(){
        System.out.println("In từ bên trong myMethod() !");
    }
}

Kết quả

Sắp gặp phải một phương thức.
In từ bên trong myMethod() !
Phương thức đã được thực thi thành công!

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 đối tượng của lớp Đầu ra
        Output obj = new Output();
        System.out.println("Sắp gặp phải một phương thức."); 

        // gọi myMethod () của lớp Đầu ra
        obj.myMethod();

        System.out.println("Phương thức đã được thực thi thành công!");
    }
}

class Output {
  
    // public: phương thức này có thể được gọi từ bên ngoài lớp
    public void myMethod() {
        System.out.println("In từ bên trong myMethod() !");
    }
}

Kết quả

Sắp gặp phải một phương thức.
In từ bên trong myMethod() !

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.