09/04/12 Design: Nguyễn Hiền Du
Lập trình hướng đối tượng
Là đưa cả giải thuật và cấu trúc dữ liệu vào
cùng một cấp. Nghĩa là ta làm việc với các
gói bao gồm cả dữ liệu lẫn các phương thức
(hàm, thủ tục) để xử lý chúng.
09/04/12 Design: Nguyễn Hiền Du
I. Một số khái niệm cơ bản
1. Lớp (class):
Lớp được ví như một khuôn mẫu dùng để tạo
ra các đối tượng. Khi tạo một đối tượng từ một
lớp, thì các đối tượng này là những đối tượng
hoạt động. Các thành phần trên hộp công cụ có
thể ví như lớp
giả sử ta bổ sung một nút lệnh vào biểu mẫu,
coi như ta đã tạo ra một đối tượng (Command1)
từ lớp CommdButton
09/04/12 Design: Nguyễn Hiền Du
2. Đóng kín (encapsulation)
Các thành phần của lớp là dữ liệu và phương
thức thuộc lớp đó. Rõ ràng đối tượng có tính
đóng kín, hay còn gọi là gói dữ liệu, tính đóng
kín là khái niệm chính yếu trong OOP. Giống
như một lọ thuốc có viên thuốc (dữ liệu) và tờ
giấy trong đó có hướng dẫn dùng các viên thuốc
đó (phương thức), hai thứ đó được đóng kín
trong lọ. Nhờ tính năng đóng kín nên đối tượng
có thể ứng xử theo kiểu "hộp đen" cho nên có
thể sử dụng lại và gỡ rối dễ dàng.
09/04/12 Design: Nguyễn Hiền Du
3. Kế thừa (inheritance)
Việc tạo lớp dựa trên lớp đã có được gọi là tính
kế thừa. Mục đích chính của tính kế thừa là
giúp ta dùng lại đối tượng mà không phải viết lại
các thành phần của đối tượng.
4.Đa hình (polymorphism):
Khi viết mã gửi một thông điệp cho đối tượng
(gọi một phương thức), có thể phương thức đó
nằm trong nhiều đối tượng mà khi biên dịch chư
a thể xác định ngay được là phương thức thuộc
đối tượng nào, mà phải chờ đến khi chạy chương
trình. Nghĩa là có thể xẩy ra nhiều hình thái (đa
hình) trong việc lựa chọn một phương thức cụ
thể, tức là "các đối tượng tự biết cách phản ứng
trong những tình huống cụ thể"
09/04/12 Design: Nguyễn Hiền Du
II. Tạo đối tượng trong VB
1. Khai báo Biến kiểu đối tượng
Có một số kiểu biến đối tượng được dùng khi khai
báo sau:
Dim ObjA As Control
hoặc
Dim objB As Object
Cho phép ta ấn định biến objB cho bất kỳ đối tượng
VB nào. Ta có thể dùng một kiểu biến Variant hay
Object để tham chiếu một đối tượng VB bất kỳ
09/04/12 Design: Nguyễn Hiền Du
Vi dụ:
Dim A As TextBox
Set A = Text1
A.Text= Tin học
Hoặc
Dim A As Variant
Set A = Text1
A.Text= Tin học
09/04/12 Design: Nguyễn Hiền Du
2. Từ khoá New
Từ khoá New rất thông dụng để tạo các đối tư
ợng VB vào thời gian thực hiện
- Giả sử bạn có một biểu mẫu tên Form1 trong
đề án. Khai báo sau:
Dim frmA As New Form1
- Sẽ tạo một bản sao của Form1; frmA có các
tính chất giống như Form1.
Lưu ý: Từ khoá New cũng được dùng với các đối
tượng do chính ta tạo ra, Không dùng với các
điều khiển trên biểu mẫu.
09/04/12 Design: Nguyễn Hiền Du
3. Hàm TypeName và các biến đối tượng
Chẳng cần phải dùng toán tử TypeOf để xác định xem
đang xử lý đối tượng nào. Ta có thể dùng hàm
TypeName để xác định kiểu của một đối tượng cũng
như kiểu của một biến bất kỳ.
Ví dụ
Private Sub Command1_Click()
Dim Abutton As Object
Set Abutton = Command1
Me.Print TypeName(AButton)
End Sub
09/04/12 Design: Nguyễn Hiền Du
4. Tập hợp controls
Có thể xem tập hợp (collection) như mảng, nó có
thể tự động tăng phần tử hoặc giảm phần tử khi
có yêu cầu.
Tính chất Count của tập hợp Controls báo cho ta
biết số lượng điều khiển đã nạp trên một biểu
mẫu cụ thể
Để truy cập từng điều khiển riêng lẻ, ta dùng chỉ
số: Controls(0), Controls(1) v.v
Mặc dù chỉ số bắt đầu là 0, nhưng Controls(0) có
thể không phải là điều khiển đầu tiên mà ta đã
bổ sung vào biểu mẫu
09/04/12 Design: Nguyễn Hiền Du
Private Sub Form_Load()
Dim I As Integer
Show
For I = 0 To Controls.Count - 1
Print Controls(I).Name
Next I
End Sub
09/04/12 Design: Nguyễn Hiền Du
5. Bổ sung các điều khiển vào thời gian thực
hiện
Cú pháp dùng Add để bổ sung các điều khiển
như sau:
Set ObjName =
FormName.Control.Add(ProgID, Key)
ObjName là biến đối tượng đã được khai báo trư
ớc. Tham số ProgID là một chuỗi giúp VB xác
định được đích danh đối tượng cần bổ sung. Với
các điều khiển không phải thông qua Tool /
Components, thì quy tắc của ProgID như sau:
VB.ControlType
09/04/12 Design: Nguyễn Hiền Du
Private Sub Form_Load()
Dim A As Label
Set A =
Form1.Controls.Add("VB.Label",
"Label1")
Dim B As TextBox
Set B =
Form1.Controls.Add("VB.textbox",
"Text1")
End Sub
09/04/12 Design: Nguyễn Hiền Du
6. Tạo Class module
Để tạo một môđun lớp mới vào thời gian thiết kế,
ta chọn Project/Add Class Module. Tính chất
Name sẽ xác định tên của lớp đó
Bước 1: chọn Project/ Add Class Module và gõ
vào mã lệnh, sau đó đặt tên cho Class Module
Bước 2. Tạo một Form và khai báo biến có kiểu
đối tượng là tên của Class modul đó. Khi đó
nhung thủ tuc và biến được khai báo trong
modul mới có thể thực hiện được
ví dụ:
Không có nhận xét nào:
Đăng nhận xét