Giới thiệu phương thức (tiếp)
✦
Một phương thức có thể trả về một giá
trị. Kiểu của giá trị đó là kiểu dữ
liệu của phương thức trả về.
✦
Nếu phương thức không trả về một giá
trị, kiểu của phương thức trả về dùng
từ khóa void.
✦
Ví dụ, kiểu giá trị trả về trong
phương thức main là void.
Khai báo phương thức
public static int max(int num1, int num2) {
if (num1 > num2)
return num1;
else
return num2;
}
Cách gọi phương thức
Ví dụ 4.1: Phương thức max
Chương trình minh họa việc gọi phương thức
max để trả về giá trị lớn nhất.
TestMax
TestMax
Run
Cách gọi phương thức (tiếp)
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(
"The maximum between " + i +
" and " + j + " is " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
pass i
pass j
Cách gọi phương thức (tiếp)
The main method
i:
j:
k:
The max method
num1:
num2:
result:
pass 5
5
2
5
5
2
5
pass 2
parameters
Lưu ý
✦
Câu lệnh trả về giá trị bắt buộc phải có đối
với một phương thức non-void.
✦
Phương thức sau đúng về logic, nhưng có lỗi
biên dịch vì trình biên dịch Java nghĩ rằng
phương thức này không trả về bất kỳ giá trị nào.
public static int xMethod(int n) {
if (n > 0) return 1;
else if (n == 0) return 0;
else if (n < 0) return –1;
}
✦
Để sửa lỗi này, xóa if (n<0) trong đoạn mã
trên.
Truyền tham số
public static void nPrintln(String message, int n) {
for (int i = 0; i < n; i++)
System.out.println(message);
}
Truyền tham trị
Ví dụ 4.2: Truyền tham trị
TestPassByValue
TestPassByValue
Truyền tham trị (tiếp)
swap(num1, num2)
swap( n1, n2)
Pass by value
num1
Swap
1
2
n1
n2
1
2
n1
n2
2
1
temp
1
Execute swap inside the swap body
num2
Invoke swap
The values of num1 and
num2 are passed to n1 and
n2. Executing swap does not
affect num1 and num2.
Overloading Methods
Ví dụ 4.3: Overloading method max
public static double max(double num1,
double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
TestMethodOverloading
TestMethodOverloading
Không có nhận xét nào:
Đăng nhận xét