Java - Hãy chọn đáp án thể hiện kết quả đúng của đoạn chương trình cho sẵn dưới đây.

Bài tập này yêu cầu chúng ta hãy chọn đáp án thế hiện kết quả đúng của đoạn chương trình cho sẵn dưới đây, giải thích vì sao có kết quả đó và sử dụng Eclipse để kiểm chứng.

Calculate.java
package baitap;

public interface Calculate {

	void cal(int item);
	
}

Display.java
package baitap;

public class Display implements Calculate {

	int x;
	
	@Override
	public void cal(int item) {
		x = item * item;
	}

}

Test.java
package baitap;

public class Test {

	public static void main(String[] args) {

		Display arr = new Display();
		arr.x = 0;      
		arr.cal(2);
		System.out.print(arr.x);
		
	}
	
}

A 0
B 2
C 4
D Không có đáp án nào đúng trong 3 đáp án trên

Bài giải

-------------------- ######## --------------------

Đáp án: C

Giải thích:

Trong đoạn chương trình trên, tôi tạo ra 1 Interface có tên là Calculate, Interface này chỉ có 1 phương thức trừu tượng duy nhất là void cal(int item);. Sau đó, tôi tạo thêm 1 lớp mới Display implement Interface Calculate và vì vậy phương thức cal() sẽ được định nghĩa lại, phương thức này được dùng để tính bình phương giá trị item. Cuối cùng, lớp Test sẽ khởi tạo 1 đối tượng arr của lớp Display, trong phương thức này tôi sẽ khởi tạo giá trị thuộc tính x của lớp Display bằng 0 và gọi phương thức cal() với giá trị truyền vào bằng 2. Kết quả là giá trị của biến x sẽ bằng 22 = 4 và kết quả hiển thị ra màn hình sẽ là số 4. Lý do là vì trong Java các câu lệnh sẽ được thực hiện từ trên xuống dưới và kết quả của câu lệnh cuối cùng sẽ là kết quả chính của chương trình nên giá trị của biến x sẽ bằng 4 chứ không phải bằng 0. Nếu ta thay đổi vị trí của 2 câu lệnh này cho nhau thì kết quả biên dịch chương trình sẽ bằng 0.

Kết quả biên dịch chương trình bằng Eclipse:

 

Trở thành Android Developer chuyên nghiệp với 30h học
Bạn muốn trở thành một nhà phát triển mobile app trên nền tảng Android? Vậy thì đây là khóa học rất phù hợp với bạn, chi phí rẻ, học online tại nhà.
XEM NGAY

Nguồn: freetuts.net