Home > Java > Java core > Java - Hãy chọn đáp án đúng trong các đáp án cho sẵn của đoạn chương trình dưới đây (câu hỏi 2)

Java - Hãy chọn đáp án đúng trong các đáp án cho sẵn của đoạn chương trình dưới đây (câu hỏi 2)

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

Interface.java
package baitap;

public interface Calculate {

	int VAR = 0;
	void cal(int item);
	
}

Display.java
package baitap;

public class Display implements Calculate {

	int x;
	
	@Override
	public void cal(int item) {
		if (item < 2)
			x = VAR;
		else
			x = item * item;       
	}

}

Test.java
package baitap;

public class Test {

	public static void main(String[] args) {
		
		Display[] arr = new Display[3];
		 
		for (int i = 0; i < 3; i++) {
			arr[i] = new Display();
		}
		
		arr[0].cal(0);    
		arr[1].cal(1);
		arr[2].cal(2);
		System.out.print(arr[0].x + " " + arr[1].x + " " + arr[2].x);
        
	}
	
}

A 0 1 2
B 0 2 4
C 0 0 4
D 0 1 4

Bài giải

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

Đáp án: C. 0 0 4

Giải thích:

Trong đoạn chương trình trên, tôi tạo 1 Interface có tên là Calculate. Trong Interface này, tôi có tạo 1 hằng số VAR với giá trị khởi tạo bằng 0 và phương thức trừu tượng void cal(int item);. Lớp Display implement Interface này sẽ khai báo 1 biến x có kiểu int và định nghĩa lại phương thức cal(), phương thức này sẽ kiểm tra nếu giá trị của item < 2 thì sẽ gán x = hằng số VAR của Interface Calculate, ngược lại thì sẽ tính bình phương của item và gán vào x.

Trong lớp Test, tôi tạo một mảng arr có kiểu dữ liệu Display và lưu trữ 3 phần tử. Vòng lặp for sẽ duyệt i từ 0 đến 2, mỗi lần duyệt sẽ khởi tạo 1 phần tử thứ i của mảng arr. Sau đó dòng code arr[0].cal(0); sẽ gọi phương thức cal() của lớp Display và vì 0 < 2 nên giá trị của x lúc này sẽ bằng VAR và bằng 0. Dòng code tiếp theo arr[1].cal(1); sẽ gọi phương thức cal() của lớp Display và vì 1 < 2 nên giá trị của biến x lúc này cũng bằng 0. Tương tự với dòng code arr[2].cal(2); ta có 2 = 2 nên x lúc này sẽ bằng 22 = 4.

Dòng code cuối cùng sẽ hiển thị 3 giá trị của x của từng phần tử trong mảng arr trên cùng 1 dòng, tức là ta sẽ có kết quả biên dịch là 0 0 4.

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

ketqua bai tap chon ket qua dung interface PNG

Nguồn: freetuts.net

Tham khảo
Java - Liệt kê sự khác nhau giữa Interface và lớp Abstract (lớp trừu tượng).
Java - Interface và lớp trừu tượng được sử dụng trong những trường hợp nào?
Java - Bạn hãy nêu lỗi của đoạn chương trình dưới đây và giải thích vì sao.
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 (câu hỏi 1)
Java - Hãy chọn đáp án đúng trong các đáp án cho sẵn của đoạn chương trình dưới đây (câu hỏi 2)

BÀI VIẾT

notice png LIST home png HOME hot gif BÁO
LỖI
top png TOP