JavaScript is required

Cho biết kết quả sau khi thực thi đoạn chương trình sau:
class C2 {
public static void main(String args[]) {
int k = 50;
IncValue inc = new IncValue();
System.out.println("result = " + inc.increment(k));
System.out.println("k = " + k);
}
}
class IncValue {
public int increment(int v) {
int z = v + 10;
v = v - 3;
return z;
}
}

A.

result = 60 và k = 50

B.

result = 50 và k = 50

C.

result = 47 và k = 50

D.
result = 60 và k = 47
Trả lời:

Đáp án đúng: A


Đoạn chương trình trên bao gồm hai lớp: `C2` và `IncValue`. Lớp `C2` chứa phương thức `main`, là điểm bắt đầu của chương trình. Trong phương thức `main`, một biến `k` được khởi tạo với giá trị 50. Sau đó, một đối tượng `IncValue` được tạo và phương thức `increment` của đối tượng này được gọi với `k` làm tham số. Trong phương thức `increment`, biến `v` (bản sao của `k`) được tăng thêm 10, kết quả được gán cho `z` và `z` được trả về. Biến `v` sau đó bị giảm đi 3, nhưng thao tác này không ảnh hưởng đến giá trị của `k` trong phương thức `main` vì `v` chỉ là bản sao của `k`. Do đó, giá trị của `k` vẫn là 50. Vì vậy, dòng `System.out.println("result = " + inc.increment(k))` in ra "result = 60" (vì `z = 50 + 10 = 60`), và dòng `System.out.println("k = " + k)` in ra "k = 50". Vậy đáp án đúng là: result = 60 và k = 50.

Câu hỏi liên quan