Đầu tiên, bạn phải thấy phương thức Update() trong lớp HinhChuNhat
- Code:
-
// Tính lại diện tích và chu vi
protected void Update()
{
cv = TinhChuVi();
dt = TinhDienTich();
}
Ok ! Mình sẽ giải thích chi tiết về phương thức này :
protected void Update()Khai báo phương thức Update()
Tầm vực: protected ( chỉ sử dụng được bên trong lớp HinhChuNhat và lớp con của nó )
Kiểu dữ liệu trả về: void ( tức không trả về giá trị gì )
Tham số: Phương thức không nhận tham số ( bên trong 2 dấu ( ) để trống )
{
cv = TinhChuVi();
dt = TinhDienTich();
}Gọi phương thức TinhChuVi() và gán giá trị trả về của phương thức TinhChuVi() cho biến cv
Gọi phương thức TinhDienTich() và gán giá trị trả về của phương thức TinhDienTich() cho biến dt
Trả lời câu hỏi 1 : hàm update trong trường hợp này là gì và khi nào dùng tới nó ?
+ Trước tiên ,bạn nên gọi nó là phương thức nhé ! Gọi hàm cũng không sai nhưng không đúng sách giáo khoa.
+ Bạn đừng suy nghĩ theo kiểu giống như cái comment
//Tính lại diện tích và chu vi mà nên hiểu là bất cứ khi nào phương thức Update() được gọi nó sẽ thực hiện tất cả các lệnh bên trong nó. Trong trường hợp này , nó sẽ tiếp tục gọi 2 phương thức khác . Hai biến cv và dt tất nhiên sẽ được nhận giá trị mới sau khi phương thức TinhChuVi() và TinhDienTich() được gọi.
Trả lời câu hỏi 2: - Code:
-
/// Trả về giá trị chiều dài của hình chữ nhật này
public double ChieuDai
{
get { return d; }
set
{
if (value <= 0)
return;
if (value < r)
return;
d = value;
Update(); : hàm update () co nghia la gi ?va khi nao dung toi no?
}
)
Hết cái đống này là khai báo thuộc tính ChieuDai của lớp HinhChuNhat
Mình nói luôn đặc điểm nhận biết nó là thuộc tính : Không có 2 cái dấu ngoặc ( ) sau tên thuộc tính. Thuộc tính thực ra chỉ là người đại diện cho một biến . Điểm khác là với một thuộc tính, ta điều khiển hoàn toàn cách nhận và trả về giá trị mà một biến không thể làm được . Đây chính là sự mềm dẻo và sức mạnh của lập trình hướng đối tượng . Có thể nói nhờ thuộc tính mà ta mô tả được hầu hết các sự vật trong vũ trụ này.
public double ChieuDaiKhai báo thuộc tính ChieuDai
Tầm vực: Tất nhiên là phải public rồi ^^
Kiểu dữ liệu ( trả về và nhận vào ) : double
get { return d; }Trả về giá trị của biến d khi thuộc tính ChieuDai được gọi ( có thể là xuất ra màn hình hay gán giá trị cho một biến nào đó,… )
set
{
if (value <= 0)
return;Bên trong set ,từ khóa value làm đại diện cho tất cả giá trị mà thuộc tính nhận vào. Khi gặp từ khóa return thì lập tức kết thúc việc nhận giá trị (set)
Nếu thuộc tính nhận giá trị <= 0 thì return (giá trị hiện thời của biến d sẽ không thay đổi ) .
if (value < r)
return;
d = value;
Update();
}
} Nếu thuộc tính ChieuDai nhận giá trị nhỏ hơn biến r (xét vào thời điểm đó) thì return ( giá trị hiện thời của biến d sẽ không thay đổi )
Gán giá trị của value cho biến d ( việc này thực hiện được khi 2 điều kiện trên đều không xảy ra )
Gọi phương thức Update() để tính lại chu vi, diện tích . ( Vì chiều dài thay đổi nên phải gán lại giá trị mới cho 2 biến cv và dt ) .