Khái niệm và Sử dụng Phương thức trong Java

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

Trong Java, phương thức là một tập hợp các câu lệnh được nhóm lại để thực thi một chức năng cụ thể. Chúng hoạt động như các khối chức năng, giải quyết một loại vấn đề nhất định thông qua các bước được sắp xếp. Phương thức thuộc về các lớp hoặc đối tượng và có thể được tạo trong một chương trình và gọi từ những nơi khác.

Nguyên tắc thiết kế phương thức quan trọng là tính nguyên tử: mỗi phương thức chỉ nên thực hiện một chức năng duy nhất. Điều này tăng cường khả năng bảo trì và mở rộng của mã nguồn sau này.

Định nghĩa Phương thức

Tương tự như các hàm trong các ngôn ngữ khác, phương thức Java là một đoạn mã dùng để thực hiện một tác vụ cụ thể. Cú pháp định nghĩa một phương thức bao gồm một phần đầu phương thức và một phần thân phương thức.

Các thành phần của Phương thức:

  • Mô tả truy cập (Access Modifier): Là tùy chọn, xác định cách phương thức có thể được truy cập (ví dụ: public, private).
  • Kiểu trả về (Return Type): Chỉ định kiểu dữ liệu của giá trị mà phương thức trả về. Nếu phương thức không trả về giá trị nào, kiểu trả về sẽ là void.
  • Tên phương thức (Method Name): Tên thực tế của phương thức. Tên phương thức và danh sách tham số tạo thành signature của phương thức.
  • Danh sách tham số (Parameters): Các biến đóng vai trò là placeholders, nhận giá trị khi phương thức được gọi. Danh sách tham số bao gồm kiểu dữ liệu, thứ tự và số lượng tham số. Tham số là tùy chọn; phương thức có thể không có tham số nào.
  • Thân phương thức (Method Body): Chứa các câu lệnh thực tế định nghĩa chức năng của phương thức.
    • Tham số hình thức (Formal Parameters): Các tham số được khai báo trong định nghĩa phương thức.
    • Tham số thực tế (Actual Parameters): Các giá trị được truyền cho phương thức khi nó được gọi.

Cú pháp tổng quát:

    
    mô_tả_truy_cập kiểu_trả_về tên_phương_thức(kiểu_tham_số tên_tham_số) {
        // Thân phương thức
        // ...
        return giá_trị_trả_về; // Nếu kiểu trả về không phải là void
    }
    
    

Gọi Phương thức

Phương thức được gọi bằng cách sử dụng tên đối tượng theo sau là toán tử dấu chấm (.), tên phương thức và danh sách các tham số thực tế trong dấu ngoặc đơn.

Cú pháp gọi:

đối_tượng.tên_phương_thức(danh_sách_tham_số_thực_tế);

Có hai cách gọi phương thức tùy thuộc vào việc chúng có trả về giá trị hay không:

  • Nếu phương thức trả về một giá trị, lệnh gọi phương thức có thể được coi như một giá trị. Ví dụ:
    int ket_qua_lon_nhat = timMax(30, 40);
  • Nếu phương thức trả về void, lệnh gọi phương thức thường là một câu lệnh độc lập. Ví dụ:
    System.out.println("Xin chào thế giới!");

Nạp chồng Phương thức (Method Overloading)

Nạp chồng phương thức là việc định nghĩa nhiều phương thức có cùng tên trong cùng một lớp, nhưng có danh sách tham số khác nhau. Các quy tắc để nạp chồng phương thức bao gồm:

  • Tên phương thức phải giống nhau.
  • Danh sách tham số phải khác nhau (về số lượng, kiểu dữ liệu hoặc thứ tự của các tham số).
  • Kiểu trả về có thể giống hoặc khác nhau, nhưng chỉ khác biệt về kiểu trả về là không đủ để coi là nạp chồng.

Khi một phương thức được gọi, trình biên dịch sẽ xem xét số lượng và kiểu dữ liệu của các tham số thực tế để khớp với một phương thức nạp chồng cụ thể. Nếu không tìm thấy sự khớp nào, trình biên dịch sẽ báo lỗi.

Tham số Dòng lệnh

Bạn có thể truyền các tham số cho chương trình Java khi chạy nó thông qua đối số dòng lệnh. Các đối số này được cung cấp cho phương thức main dưới dạng một mảng các chuỗi.

    
    public class XuLyThamSoDongLenh {
        public static void main(String[] args) {
            for (int i = 0; i < args.length; i++) {
                System.out.println("Tham số dòng lệnh [" + i + "]: " + args[i]);
            }
        }
    }
    
    

Tham số Biến đổi (Varargs)

Từ JDK 1.5 trở đi, Java hỗ trợ việc truyền một số lượng tham số cùng kiểu không xác định cho một phương thức. Điều này được thực hiện bằng cách sử dụng dấu ba chấm (...) sau kiểu tham số trong khai báo phương thức.

  • Một phương thức chỉ có thể có một tham số biến đổi.
  • Tham số biến đổi phải là tham số cuối cùng trong danh sách tham số của phương thức. Bất kỳ tham số thông thường nào cũng phải được khai báo trước đó.

Đệ quy (Recursion)

Đệ quy là một kỹ thuật lập trình trong đó một phương thức tự gọi chính nó. Kỹ thuật này cho phép giải quyết các vấn đề phức tạp bằng cách chia nhỏ chúng thành các phiên bản nhỏ hơn, giống hệt nhau của cùng một vấn đề.

Cấu trúc đệ quy bao gồm hai phần chính:

  • Điều kiện dừng (Base Case): Là điều kiện để phương thức ngừng tự gọi chính nó. Nếu không có điều kiện dừng, chương trình sẽ rơi vào vòng lặp vô hạn.
  • Bước đệ quy (Recursive Step): Là nơi phương thức gọi lại chính nó với các tham số đã được điều chỉnh để tiến gần hơn đến điều kiện dừng.

Đệ quy giúp mô tả các giải pháp cho các bài toán có tính chất lặp lại hoặc cấu trúc phân cấp phức tạp bằng một lượng mã nguồn hạn chế.

Thẻ: Java Phương thức Nạp chồng đệ quy Varargs

Đăng vào ngày 10 tháng 8 lúc 02:07