JavaScript is required

Hãy cho biết lệnh nào sau đây là sai trong khi xây dựng một JavaBean? private int items={1,2,3,4,5};

private PropertyChangeSupport pcs; public int getItems (int i)

{

return items[i]

}

A.

A. Lệnh 1

B.

B. Lệnh 2

C.

C. Lệnh 3

D.

D. Lệnh 4

Trả lời:

Đáp án đúng: A


Trong JavaBean, các thuộc tính (properties) phải tuân theo một số quy tắc nhất định để có thể truy cập và thao tác thông qua các phương thức getter và setter. Dưới đây là phân tích chi tiết về từng lệnh và lý do lệnh nào sai:

Lệnh 1: private int items={1,2,3,4,5};

  • Đây là cách khởi tạo một mảng (array) trong Java. Tuy nhiên, trong ngữ cảnh của JavaBean, việc khởi tạo trực tiếp một mảng như vậy có thể không linh hoạt. Thông thường, thuộc tính items nên được khởi tạo thông qua constructor hoặc setter để dễ dàng quản lý và thay đổi giá trị. Về mặt cú pháp, lệnh này không sai, nhưng trong thực tế xây dựng JavaBean, nó không phải là cách tốt nhất.

Lệnh 2: private PropertyChangeSupport pcs;

  • PropertyChangeSupport là một lớp trong Java hỗ trợ việc thông báo (notification) khi một thuộc tính của JavaBean thay đổi. Việc khai báo một đối tượng PropertyChangeSupport là hoàn toàn hợp lệ và thường được sử dụng trong JavaBeans để tuân thủ các quy tắc về sự kiện (events).

Lệnh 3 và 4:

public int getItems (int i)

{

return items[i];

}

  • Đây là một phương thức getter, được sử dụng để truy xuất một phần tử của mảng items tại vị trí i. Tuy nhiên, nó vi phạm quy ước đặt tên của getter trong JavaBeans. Theo quy ước, nếu items là một thuộc tính (property) thì getter của nó phải là getItems() (không có tham số) hoặc nếu muốn truy cập một phần tử cụ thể, cần có một phương thức khác rõ ràng hơn thay vì dùng getter có tham số. Việc sử dụng getter có tham số (như getItems(int i)) là một sai sót trong thiết kế JavaBean vì nó không tuân theo chuẩn và có thể gây khó khăn cho các công cụ và framework dựa trên JavaBeans để tự động phát hiện và thao tác với thuộc tính này.

Do đó, lệnh sai trong ngữ cảnh xây dựng JavaBean là lệnh định nghĩa phương thức getItems(int i).

Câu hỏi liên quan