Method Là Gì

Bạn đã từng nghe đến khái niệm “phương thức” trong Java nhưng chưa hiểu rõ về nó? Đừng lo, bài viết dưới đây sẽ giúp bạn tìm hiểu về phương thức trong Java từ cơ bản đến chi tiết nhất.

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

Phương thức trong Java là một đoạn mã thực hiện các công việc cụ thể. Nó có thể được tái sử dụng nhiều lần, chỉ cần viết một lần và sau đó sử dụng lại. Ngoài ra, phương thức cũng giúp dễ dàng sửa đổi và đọc code, chỉ cần thêm hoặc xóa một đoạn mã. Phương thức chỉ được thực thi khi chúng ta gọi nó.

access_specifier modifier datatype method_name(parameter_list) {
    // body of method
}

Trong đó:

  • access_specifier: chỉ định truy cập vào phương thức.
  • modifier: gán các thuộc tính cho phương thức.
  • datatype: kiểu dữ liệu mà giá trị của nó được phương thức trả về. Nếu không trả về giá trị, kiểu dữ liệu có thể là void.
  • method_name: tên của phương thức.
  • parameter_list: chứa kiểu dữ liệu và tên của tham số được sử dụng trong phương thức. Các tham số được phân tách bằng dấu phẩy.

2. Cách xây dựng phương thức (Method) trong Java

2.1 Chỉ định truy cập phương thức (Access specifier method)

Có ba chỉ định truy cập được sử dụng để hạn chế quyền truy cập vào các phương thức trong Java:

  • public: phương thức công khai có thể được truy cập từ bất kỳ gói hoặc lớp nào.
  • protected: phương thức được mở rộng từ lớp hiện tại trong cùng một gói hoặc gói khác có thể truy cập.
  • private: phương thức chỉ có thể được truy cập bởi các phương thức công khai trong cùng một lớp.

2.2 Loại phương thức (Modifier method)

Có nhiều công cụ sửa đổi để thiết lập các thuộc tính cho phương thức trong Java:

  • static: trạng thái của một phương thức có thể thay đổi mà không cần tạo đối tượng. Nó chỉ được sử dụng cho dữ liệu và các phương thức tĩnh.
  • abstract: ngụ ý rằng phương thức không có mã cụ thể và sẽ được thêm vào lớp con. Loại phương thức này thường được sử dụng cho các lớp dẫn xuất.
  • final: phương thức không được kế thừa hoặc ghi đè.
  • native: chỉ ra rằng phần thân phương thức được viết bằng ngôn ngữ khác với Java, ví dụ như C và C++.
  • synchronized: sử dụng với các phương thức trong quá trình thực thi luồng. Nó chỉ cho phép một luồng truy cập khối mã tại một thời điểm.
  • volatile: sử dụng cùng với các biến, cho phép giá trị của biến có thể thay đổi nhiều lần trong quá trình thực hiện chương trình và không được ghi vào thanh ghi.

2.3 Nạp chồng (Overloading method)

Các phương thức nạp chồng là các phương thức có cùng tên nhưng có danh sách tham số khác nhau trong cùng một lớp. Sử dụng tính năng này để triển khai cùng một phương thức cho các kiểu dữ liệu khác nhau. Ví dụ, bạn có thể nạp chồng phương thức swap() với các tham số là số nguyên, số thực và số phân số.

protected void performTask(double salary) {
    System.out.println("Salary is: " + salary);
}

protected void performTask(double salary, int bonus) {
    System.out.println("Total Salary is: " + salary + bonus);
}

2.4 Ghi đè (Overriding method)

Phương thức ghi đè là phương thức tồn tại trong lớp cơ sở và lớp dẫn xuất. Phương thức này cho phép các lớp con chỉ định phiên bản của phương thức chung. Ví dụ, lớp cơ sở định nghĩa một phương thức chung “area()”. Phương thức này có thể được triển khai trong các lớp con để tính diện tích của các hình cụ thể như hình chữ nhật và hình vuông.

class SuperClass {
    void message() {
        System.out.println("In the superclass");
    }
}

class SubClass extends SuperClass {
    void message() {
        System.out.println("In the subclass");
    }
}

2.5 Phương thức khởi tạo lớp – Constructor method

Hàm tạo lớp là một loại phương thức đặc biệt trong Java, không giống với phương thức thông thường. Nó không có kiểu trả về, có cùng tên với lớp và được thực thi khi tạo một đối tượng từ lớp đó.

Có hai loại hàm tạo lớp:

  • Explicit: bạn có thể viết hàm tạo lớp khi định nghĩa lớp. Khi tạo một đối tượng, giá trị được truyền vào phải phù hợp với các tham số của hàm tạo.
  • Implicit: khi bạn không xác định một hàm tạo cho lớp, JVM sẽ cung cấp một hàm tạo mặc định hoặc ngầm định.
class Employee {
    String name;
    int age;

    Employee(String varname, int varage) {
        this.name = varname;
        this.age = varage;
    }

    public static void main(String[] args) {
        Employee e = new Employee("Allen", 30);
    }
}

Dưới đây là hướng dẫn chi tiết về phương thức trong Java, bao gồm đoạn mã ví dụ để bạn có thể hiểu rõ hơn. Hy vọng bài viết cung cấp những kiến thức hữu ích cho bạn và chúc bạn học tốt!

Xem thêm: