JavaScript is required

Khi xây dựng một JavaBean, lệnh nào sau đây sai? public void setLength(int L)

{

if(L>0 && L!=length)

{

int oldValue=length, newValue=L; length=L;

pcs.firePropertyChange("length", oldValue, newValue); return L;

}

}

A.

Lệnh 1

B.

Lệnh 3

C.

Lệnh 5

D.

Lệnh 6

Trả lời:

Đáp án đúng: D


Đoạn code JavaBean có một số lỗi logic và cú pháp: 1. **Lỗi logic:** * Trong thân lệnh `if`, sau khi gọi `pcs.firePropertyChange`, lệnh `return L;` sẽ làm phương thức kết thúc ngay lập tức. Điều này có nghĩa là, dù `L > 0 && L != length` là đúng, thì biến `length` vẫn được gán giá trị `L`, nhưng giá trị này sẽ không bao giờ được trả về. Phương thức `setLength` thường được thiết kế để trả về giá trị đã được gán (hoặc giá trị trước đó nếu việc gán không thành công), nhưng ở đây nó trả về giá trị mới _chỉ khi_ điều kiện `if` đúng. 2. **Lỗi cú pháp:** * Kiểu trả về của phương thức là `void`, nhưng trong thân hàm lại có lệnh `return L;`. Vì `L` là kiểu `int`, nên việc trả về giá trị kiểu `int` trong một phương thức `void` là không hợp lệ. Như vậy, Lệnh 6 sai vì đang cố gắng trả về một giá trị trong một phương thức `void`.

Câu hỏi liên quan