Hàm Trong Java Với Ví Dụ Cụ Thể - Deft Blog
Có thể bạn quan tâm
Mục lục
- 1 Hàm trong java
- 2 Thao tác với hàm (method)
- 2.1 Hàm có trả về kết quả
- 2.2 Hàm không trả về kết quả
- 2.3 Tóm tắt cú pháp
- 3 public static (modifier)
- 4 Truyền tham số khi gọi hàm(method)
- 5 Passing Parameters by Value(Truyền tham số theo giá trị)
- 6 Method overloading
Một method trong java là một tập các câu lệnh được nhóm lại với nhau để thực hiện một hành động cụ thể. Ví dụ khi chúng ta gọi hàm System.out.println() thì hệ thống sẽ hiện thị message của chúng ta truyền vào.
Hàm trong java
Cú pháp
modifier returnType nameOfMethod (Parameter List) { // method body }Giải thích:
- Modifiers (tạm dịch là phạm vi sửa đổi và truy cập)
- returnType: kiểu dữ liệu trả về
- nameOfMethod: tên của hàm(method)
- Parameter là các tham số đầu vào của hàm(có thể có nhiều tham số với nhiều kiểu dữ liệu khác nhau)
- // body: là các mã code bên trong hàm
Ví dụ: Viết hàm tính tổng 2 chữ số a và b
public static int sum(int a, int b) { return a + b; }Thao tác với hàm (method)
Khi chúng ta đã viết xong một hàm rồi làm sao để chúng ta có thể sử dụng chúng đây ta! Trước tiên chúng ta sẽ có 2 loại hàm, mỗi loại sẽ có cách gọi khác nhau:
- Hàm có trả về kết quả
- Hàm không trả về kết quả
Hàm có trả về kết quả
Đối với hàm có kết quả trả về, chúng ta cần dùng từ khoá return để trả về kết qủa mà nó đã tính toán được.
Khai báo biến có kiểu dữ kiệu tương ứng với kết quả trả về của hàm để nhận giá trị trả về.
Như ví dụ tìm sum() của chúng ta, nhiệm vụ của nó là tính tổng của 2 số nguyên a, b nhập vào.
public class Main { public static int sum(int a, int b) { return a + b; } public static void main(String[] args) { int sum = sum(2,5); System.out.println(sum); } }Chúng ta sẽ dùng biến có kiểu dữ liệu tương ứng để nhận kết quả trả về từ hàm. Hàm sum() trả về int chúng ta dùng biến int sum để nhận kết quả.
Hàm không trả về kết quả
Đối với loại hàm này chúng ta chỉ cần gọi để sử dụng.
public static void printHello() { System.out.println("Hello"); }Hàm printHello() là một hàm không có kiểu trả về nên được thay thế thành void. Từ khoá void cho chúng ta biết là method đó sẽ không có kết quả trả về.
Tóm tắt cú pháp
Hàm có kết quả trả về
modifier returnType nameOfMethod (Parameter List) { // method body }Hàm không có kết quả trả về
<modifier> void methodName(Danh sách các tham số) { // body }public static (modifier)
Nảy giờ nói nhiều về nó mà không có giải thích, thực ta đây là một khái niệm khá dài dòng được sử dụng trong java hướng đối tượng. Trong loạt bài java căn bản, mình xin giải thích public static.
- public: bất kỳ một method hay một phương thức nào có từ khoá public đứng trước thì nó sẽ được truy cập bất cứ ở đâu. Nghĩa là nếu như bạn đang ở một class khác, một package khác,… thì bạn đều có thể gọi đến nó.
- static: cho phép rằng biến hay phương thức chỉ được khởi tạo lúc tải class. Chúng ta chỉ cần gọi method chứ không khởi tạo class chứa nó. Trong loạt bài java core chúng ta chỉ cần code trong class Main. Nếu các bạn bỏ static trong khai báo hàm đi thì các bạn sẽ phải khởi tạo class Main rồi mới gọi hàm được nhé.
Truyền tham số khi gọi hàm(method)
Khi bạn gọi đến một hàm đã được định và nó có danh sách các thông số nhất định. Thì khi gọi các bạn sẽ phải truyền đúng thứ tự và kiểu dữ liệu cho từng tham số. Nếu sai xót trong quá trình này có thể dẫn đến biên dịch lỗi hoặc là kết quả không đúng như mong muốn.
Passing Parameters by Value(Truyền tham số theo giá trị)
public class Main { public static void swap(int a, int b) { int c = a; a = b; b = c; System.out.println("Ket qua swap: " + "a = " + a + " b= " + b); } public static void main(String[] args) { int a = 5, b = 3; swap(a, b); System.out.println("a sau khi swap: " + a); System.out.println("b sau khi swap: " + b); } }Output:
Ket qua swap: a = 3 b= 5a sau khi swap: 5b sau khi swap: 3
Nhìn vào kết quả trên, rõ ràng hàm swap đã được a thành b, b thành a, sao trong hàm main giá trị lại như cũ nhỉ? Đó chính là truyền thông số theo giá trị đó các bạn, các tham số truyền vào hàm sẽ chỉ nhận giá trị mà không tham chiếu đến 2 biến a, b của chúng ta. Thế nên đừng có viết hàm swap() như trên nữa nghen, hồi mình chuyển tử C/C++ sang java cũng đã cố gắng viết hàm swap mà không thành.
Method overloading
Một chút thông tin thêm là trong một class nếu có 2 method cùng tên và cùng tham số đầu vào thì trình biên dịch sẽ báo lỗi nhé.
Nếu 2 method có cùng tên nhưng khác tham số đầu vào thì đó gọi là method overloading.
Ví dụ chúng ta có 2 hàm tìm số nhỏ nhất trong 2 và 3 số
public class Main { public static int min(int a, int b) { if (a <= b){ return a; } else { return b; } } public static int min(int a, int b, int c) { if (a <= b && a <= c){ return a; } else if (b <= a && b <= c){ return b; } else { return c; } } public static void main(String[] args) { int a = 5, b = 3; System.out.println(min(a, b, -1)); System.out.println(min(a, b)); } }output:
-1
3
‹Previous Next›
Từ khóa » Khai Báo Void Trong Java
-
Void Trong Java Là Gì
-
Lớp Và Phương Thức Trong Java
-
Public Static Void Main (String[] Args) Trong Java - Quách Quỳnh
-
Khái Báo Lớp Và đối Tượng Trong Java - CodeLearn
-
[Tự Học Java] Phương Thức Trong Java »
-
Public Static Void Là Gì - Bí Quyết Xây Nhà
-
Trong Java,Tại Sao Phương Thức Main Là Public Static Void?
-
Phương Thức Không Có Kiểu Dữ Liệu Trả Về (void Method) - Học Java
-
Biến Và Kiểu Dữ Liệu Trong Java - Học Java Cơ Bản đến Nâng Cao
-
Cách để Gọi Một Phương Thức Trong Java - WikiHow
-
Chi Tiết Phương Thức Trong Java - KungFu Tech
-
Định Nghĩa Về Một Java Void
-
Các Kiểu Biến Trong Java
-
Java Bài 18: Phương Thức Của Lớp - Yellow Code Books