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]
}
Đá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ượngPropertyChangeSupport
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ếuitems
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)
.