Nạp chồng phương pháp Java (Có ví dụ)

Trong bài viết này, bạn sẽ tìm hiểu về nạp chồng phương thức và cách bạn có thể đạt được nó trong Java với sự trợ giúp của các ví dụ.

Trong Java, hai hoặc nhiều phương thức có thể trùng tên nếu chúng khác nhau về tham số (số lượng tham số khác nhau, loại tham số khác nhau hoặc cả hai). Các phương thức này được gọi là phương thức nạp chồng và tính năng này được gọi là nạp chồng phương thức. Ví dụ:

 void func () (…) void func (int a) (…) float func (double a) (…) float func (int a, float b) (…)

Ở đây, func()phương thức đã được nạp chồng. Các phương thức này có cùng tên nhưng chấp nhận các đối số khác nhau.

Lưu ý : Kiểu trả về của các phương thức trên không giống nhau. Đó là bởi vì quá tải phương thức không được liên kết với các kiểu trả về. Các phương thức bị quá tải có thể có kiểu trả về giống nhau hoặc khác nhau, nhưng chúng phải khác nhau về các tham số.

Tại sao quá tải phương thức?

Giả sử, bạn phải thực hiện phép cộng các số đã cho nhưng có thể có bất kỳ số lượng đối số nào (giả sử là 2 hoặc 3 đối số cho đơn giản).

Để hoàn thành nhiệm vụ, bạn có thể tạo hai phương thức sum2num(int, int)sum3num(int, int, int)cho hai và ba tham số tương ứng. Tuy nhiên, các lập trình viên khác, cũng như bạn trong tương lai có thể bị nhầm lẫn vì hoạt động của cả hai phương pháp đều giống nhau nhưng chúng khác nhau về tên gọi.

Cách tốt hơn để hoàn thành nhiệm vụ này là sử dụng các phương thức nạp chồng. Và, tùy thuộc vào đối số được truyền, một trong các phương thức nạp chồng được gọi. Điều này giúp tăng khả năng đọc của chương trình.

Làm thế nào để thực hiện nạp chồng phương thức trong Java?

Dưới đây là các cách khác nhau để thực hiện nạp chồng phương thức:

1. Nạp chồng bằng cách thay đổi số lượng đối số

 class MethodOverloading ( private static void display(int a)( System.out.println("Arguments: " + a); ) private static void display(int a, int b)( System.out.println("Arguments: " + a + " and " + b); ) public static void main(String() args) ( display(1); display(1, 4); ) )

Đầu ra :

 Đối số: 1 Đối số: 1 và 4

2. Bằng cách thay đổi kiểu dữ liệu của các tham số

 class MethodOverloading ( // this method accepts int private static void display(int a)( System.out.println("Got Integer data."); ) // this method accepts String object private static void display(String a)( System.out.println("Got String object."); ) public static void main(String() args) ( display(1); display("Hello"); ) ) 

Đầu ra :

Có dữ liệu Số nguyên. Có đối tượng Chuỗi.

Ở đây, cả hai phương thức được nạp chồng đều chấp nhận một đối số. Tuy nhiên, một đối số chấp nhận đối số kiểu inttrong khi Stringđối tượng khác chấp nhận đối tượng.

Hãy xem một ví dụ trong thế giới thực:

 class HelperService ( private String formatNumber(int value) ( return String.format("%d", value); ) private String formatNumber(double value) ( return String.format("%.3f", value); ) private String formatNumber(String value) ( return String.format("%.2f", Double.parseDouble(value)); ) public static void main(String() args) ( HelperService hs = new HelperService(); System.out.println(hs.formatNumber(500)); System.out.println(hs.formatNumber(89.9934)); System.out.println(hs.formatNumber("550")); ) )

Khi bạn chạy chương trình, đầu ra sẽ là:

 500 89,993 550,00

Lưu ý : Trong Java, bạn cũng có thể nạp chồng các hàm tạo theo cách tương tự như các phương thức.

Đề xuất đọc: Nạp chồng khối lệnh Java

Điểm quan trọng

  • Hai hoặc nhiều phương thức có thể có cùng tên trong cùng một lớp nếu chúng chấp nhận các đối số khác nhau. Tính năng này được gọi là quá tải phương thức.
  • Quá tải phương thức đạt được bằng cách:
    • thay đổi số lượng đối số.
    • hoặc thay đổi kiểu dữ liệu của các đối số.
  • Nó không phải là quá tải phương thức nếu chúng ta chỉ thay đổi kiểu trả về của các phương thức. Phải có sự khác biệt về số lượng tham số.

thú vị bài viết...