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;
}
}
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;
}
}
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;
}
}
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.





