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.
package baitap;
public interface Calculate {
	int VAR = 0;
	void cal(int item);
	
}
package baitap;
public class Display implements Calculate {
	int x;
	
	@Override
	public void cal(int item) {
		if (item < 2)
			x = VAR;
		else
			x = item * item;       
	}
}
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.
Bài viết này được đăng tại [free tuts .net]
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:
Câu hỏi thường gặp liên quan:
- 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)
 

            Các kiểu dữ liệu trong C ( int - float - double - char ...)        
            Thuật toán tìm ước chung lớn nhất trong C/C++        
            Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)        
            ComboBox - ListBox trong lập trình C# winforms        
            Random trong Python: Tạo số random ngẫu nhiên        
            Lệnh cin và cout trong C++        
                Cách khai báo biến trong PHP, các loại biến thường gặp            
                Download và cài đặt Vertrigo Server            
                Thẻ li trong HTML            
                Thẻ article trong HTML5            
                Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên            
                Cách dùng thẻ img trong HTML và các thuộc tính của img            
                Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng