Thuộc tính Property

Một phần của tài liệu bài giảng lập trình windows (Trang 70)

Câu lệnh Property được sử dụng để dùng để gán giá trị cho một thuộc tính, một biến thành phần hoặc lấy giá trị của một thuộc tính, một biến thành phần đã được khai báo trong Module, Class hoặc Structure.

Cú pháp khai báo thuộc tính:

' Khai báo biến lưu giữ giá trị của thuộc tính

Private mthuoctinh As <Kiểu dữ liệu>

[<Từ khoá>] Property Thuoc_tinh() As <Kiểu dữ liệu>

' Truy xuất giá trị của thuộc tính Get

Return mthuoctinh End Get

65 ' Gán trị cho thuộc tính

Set (ByVal Value As <Kiểu dữ liệu>) mthuoctinh = Value

End Set

End Property

- Một thuộc tính có thể có thủ tục Get (đọc), thủ tục Set (ghi), hoặc cả hai - Nếu không có các từ khóa chỉ phạm vi Public, Protected, Private, Friend thì thuộc tính (Property) của thủ tục Get và thủ tục Set sẽ mặc định là Public.

- Các từ khóa khai báo trong cú pháp trên bao gồm * Default:

Khai báo thuộc tính mặc định. Các thuộc tính này phải có tham số và có thể gán và truy xuất không cần chỉ ra tên thuộc tính.

Một thuộc tính chỉ có thể là thuộc tính mặc định nếu thỏa các điều kiện:

Mỗi Class chỉ được có một thuộc tính mặc định, phải kể đến cả các thuộc tính kế thừa.

Thuộc tính mặc định không được là Shared hay Private

Nếu một thuộc tính nạp chồng (Overloaded) là mặc định thì tất cả các thuộc tính cùng tên cũng phải khai báo mặc định.

Thuộc tính mặc định phải có ít nhất một tham số Cú pháp:

Private mthuoctinh As <Kiểu_DL>

Default Public Property Thuoc_tinh(Index as Integer) As <Kiểu_DL> Get

Return mthuoctinh End Get

Set (ByVal Value As <Kiểu dữ liệu>) …

mthuoctinh = Value End Set

End Property

* ReadOnly

Cho biết thuộc tính chỉ được phép đọc không cho phép gán. Cú pháp:

66 Private mthuoctinh As <Kiểu dữ liệu>

Public ReadOnly Property Thuoc_tinh() As <Kiểu dữ liệu> Get

Return mthuoctinh End Get

End Property

* WriteOnly

Cho biết thuộc tính chỉ được phép gán không cho phép đọc. Cú pháp:

Private mthuoctinh As <Kiểu dữ liệu>

Public WriteOnly Property Thuoctinh() As String Set (ByVal Value As String)

mthuoctinh = Value End Set

End Property

* Overloads

Cho biết thuộc tính này nạp chồng một hoặc nhiều thuộc tính có cùng tên được định nghĩa trên lớp cơ sở. Danh sách tham số trong thuộc tính này phải khác với danh sách tham số của mỗi thuộc tính nạp chồng khác về số lượng, hoặc về các kiểu dữ liệu hoặc cả hai.

Chúng ta không cần phải dùng từ khóa Overloads khi tạo các thuộc tính nạp chồng trong một lớp. Nhưng nếu đã khai báo cho một thì phải khai báo cho tất cả.

Không được phép sử dụng cả hai từ khóa sau một lượt: Overloads và Shadows trong cùng một thuộc tính.

* Overrides

Cho biết thuộc tính ghi chồng một thuộc tính cùng tên của lớp cơ sở. Số lượng tham số, kiểu dữ liệu của tham số cũng như kiểu giá trị trả về phải khớp với của lớp cơ sở.

* Overridable

Cho biết thuộc tính này được phép ghi chồng trong lớp Con. * NotOverridable

Cho biết thuộc tính không được phép ghi chồng trong lớp Con. Mặc nhiên, các thuộc tính là không được phép ghi chồng.

67 * MustOverride

Cho biết thuộc tính không được cài đặt trong lớp và phải được cài đặt ở lớp Con. * Shadows

Cho biết thuộc tính che lấp một thuộc tính có tên tương tự, hoặc một tập hợp các thuộc tính nạp chồng của lớp cơ sở. Tham số và giá trị trả về không nhất thiết phải như trong thuộc tính bị che. Thuộc tính bị che không còn giá trị trong lớp che nó.

* Shared

Cho biết thuộc tính được chia sẻ - nghĩa là thuộc tính không gắn chặt với một thể hiện nào của lớp nhưng được sử dụng chung giữa các thể hiện của một lớp.

Ví dụ: Sử dụng câu lệnh Property dùng để gán giá trị và lấy giá trị đối với thuộc tính intMaSo trong class CHocSinh.

Khai báo định nghĩa phương thức. Public Class CHocSinh

Private intMaSo As Integer Private strHoTen As String Private dblToan As Double Private dblVan As Double

Private dblTrungBinh As Double Private intMaKhoi As Integer

Property _MaSo() As Integer Get

Return intMaSo End Get

Set(ByVal value As Integer) intMaSo = value End Set End Property End Class Hướng dẫn sử dụng Module Module1 Sub Main()

Dim hs As New ChocSinh hs._MaSo = 5

Dim a As Integer = hs._MaSo ...

68 End Sub

End Module

Một phần của tài liệu bài giảng lập trình windows (Trang 70)

Tải bản đầy đủ (PDF)

(180 trang)