Trang chủ Khóa họcNgôn ngữJava FaCode Ngôn ngữ Java nạp chồng phương thức trong Java

FaCode Ngôn ngữ Java nạp chồng phương thức trong Java

Bởi kiet

FaCode Ngôn ngữ Java Nạp chồng phương thức trong Java

Nạp chồng phương thức (method overloading)

Nạp chồng phương thức trong java xảy ra nếu một lớp có nhiều phương thức có tên giống nhau nhưng khác nhau về kiểu dữ liệu hoặc số lượng các tham số.

Giả sử bạn phải thực hiện tính tổng của các số đã cho với bất kỳ số lượng các đối số, nếu bạn viết phương thức a(int, int) cho 2 tham số, b(int, int, int) cho 3 tham số điều này có thể gây khó hiểu cho các lập trình viên khác về ý nghĩa của các phương thức đó vì chúng có tên khác nhau.


Lợi ích của nạp chồng phương thức

Sử dụng nạp chồng phương thức giúp tăng khả năng đọc hiểu chương trình.


Các cách nạp chồng phương thức

Có 2 cách nạp chồng phương thức trong java

  • Thay đổi số lượng các tham số
  • Thay đổi kiểu dữ liệu của các tham số

Trong java, không thể nạp chồng phương thức bằng cách chỉ thay đổi kiểu trả về của phương thức.


1. Nạp chồng phương thức: thay đổi số lượng các tham số

Trong ví dụ này, chúng ta cần tạo 2 phương thức, phương thức add() đầu tiên thực hiện việc tính tổng của 2 số, phương thức thứ hai thực hiện việc tính tổng của 3 số. Sử dụng phương thức static để gọi hàm thông qua tên class thay vì phải tạo thể hiện của lớp.

FaCode Ngôn ngữ Java

Kết quả:

2. Nạp chồng phương thức: thay đổi kiểu dữ liệu của các tham số

Trong ví dụ này, chúng ta sẽ tạo ra 2 phương thức có kiểu dữ liệu khác nhau. Phương thức add() đầu tiên nhận 2 đổi số có kiểu giá trị là integer, phương thức thứ hai nhận 2 đổi số có kiểu giá trị là double.

FaCode Ngôn ngữ Java

Kết quả:


Các câu hỏi về nạp chồng phương thức trong java

Câu hỏi 1: Tại sao không thể nạp chồng phương thức bằng cách chỉ thay đổi kiểu trả về của phương thức?

Trong java, không thể nạp chồng phương thức bằng cách chỉ thay đổi kiểu trả về của phương thức bởi vì không biết phương thức nào sẽ được gọi.

Ví dụ:

FaCode Ngôn ngữ Java

Kết quả:


Câu hỏi 2: Có thể nạp chồng phương thức main() không?

Có, bạn có thể nạp chồng n phương thức main. Nhưng JVM chỉ gọi phương thức main() có tham số truyền vào là một mảng String. Ví dụ:

FaCode Ngôn ngữ Java

Kết quả:


Nạp chồng phương thức và sự thay đổi kiểu giá trị

Kiểu dữ liệu của đối số truyền vào được thay đổi sang kiểu dữ liệu khác (tự động ép kiểu) nếu giá trị của đối số đó không phù hợp với kiểu dữ liệu của tham số đã được đinh nghĩa. Để hiểu khái niệm này hãy xem ảnh sau:

nạp chồng phương thức trong java
FaCode Ngôn ngữ Java

Kiểu byte có thể được ép sang các kiểu short, int, long, float hoặc double. Kiểu dữ liệu short có thể được ép sang các kiểu int, long, float hoặc double. Kiểu dữ liệu char có thể được ép sang các kiểu int, long, float or double…


Ví dụ 1:

FaCode Ngôn ngữ Java

Kết quả:


Ví dụ 2: nếu không có kiểu đối số nào phù hợp, chuyển đổi kiểu sẽ không được thực hiện.

FaCode Ngôn ngữ Java

Kết quả:


Ví dụ 3: không có kiểu đối số nào phụ hợp trong phương thức và mỗi phương thức thay đổi số đối số tương tự nhau. Th này sẽ không xác định được phương thức nào được gọi.

FaCode Ngôn ngữ Java

Kết quả:

FaCode Ngôn ngữ Java
FaCode Ngôn ngữ Java

__________

Khóa học lập trình

7 Java frameworks phổ biến nhất hiện nay

xem thêm

________

FaCode là một seri học tập lập trình, lần này là FaCode ngôn ngữ Java, bằng mọi nỗ lực FaCode sẽ hoàn thành các mục tiêu đề ra trong FaCode Ngôn ngữ Java. Hãy đồng hành cùng FaCode Ngôn ngữ Java và theo dõi chúng tôi nhé. FaCode Ngôn ngữ Java rất mong nhận được lời góp ý từ phía cộng đồng. Share4Happy với phương châm chia sẻ để hạnh phúc.

Related Posts

Để lại một bình luận