You are on page 1of 89

CHƯƠNG 0 MỤC LỤC

Chương 0 MỤC LỤC ......................................................................... i

Chương 1 MỞ ĐẦU........................................................................... 1

1.1 BIẾN TOÀN CỤC ....................................................................................1


1.2 BIẾN CỤC BỘ .........................................................................................2
1.3 HÀM VÀ BIẾN TOÀN CỤC .................................................................10
1.4 THAM SỐ VÀ HÀM, THỦ TỤC.............................................................4
1.4.1 Khái niệm ................................................................................... 5
1.4.2 Phân loại ..................................................................................... 5
1.4.3 Chương trình minh họa............................................................... 5
1.5 KIỂU CẤU TRÚC ....................................................................................7
1.6 ỨNG DỤNG .............................................................................................9
1.6.1 Ứng dụng 1 ................................................................................. 9
1.6.2 Ứng dụng 2: .............................................................................. 10
1.7 BÀI TẬP .................................................................................................11

Chương 2 LẬP TRÌNH HƯỚNG ĐƠN THỂ TRONG VB.NET 13

i
2.1 THỦ TỤC-PROCEDURE ......................................................................13
2.1.1 Khái niệm ................................................................................. 13
2.1.2 Các đặc điểm ............................................................................ 14
2.1.3 Cú pháp khai báo thủ tục .......................................................... 13
2.2 HÀM-FUNCTION..................................................................................14
2.2.1 Khái niệm ................................................................................. 14
2.2.2 Các đặc điểm ............................................................................ 15
2.2.3 Cú pháp khai báo hàm .............................................................. 15
2.3 ĐƠN THỂ-MODULE.............................................................................16
2.3.1 Khái niệm ................................................................................. 16
2.3.2 Phân loại đơn thể ...................................................................... 16
2.4 NAMESPACE ........................................................................................16
2.5 TẦM VỰC ..............................................................................................16
2.5.1 Tầm vực khối lệnh.................................................................... 17
2.5.2 Tầm vực Thủ tục, Hàm............................................................ 18
2.5.3 Tầm vực đơn thể....................................................................... 18
2.5.4 Tầm vực namespace ................................................................. 19
2.6 TÀI LIỆU THAM KHẢO.......................................................................20

Chương 3 CÁC PHƯƠNG PHÁP LẬP TRÌNH........................... 21

3.1 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG LỆNH....................................21


3.2 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG THỦ TỤC VÀ HÀM ............21
3.3 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNH ĐƠN THỂ .............................21
3.3.1 Khái niệm ................................................................................. 21

ii
3.3.2 Phân loại đơn thể ...................................................................... 22
3.4 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ........................22
3.5 CÁC NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG......................22

Chương 4 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG


TRONG VB.NET ................................................................................ 23

4.1 LỚP ĐỐI TƯỢNG..................................................................................23


4.1.1 Khái niệm ................................................................................. 23
4.1.2 Cú pháp khai báo lớp................................................................ 23
4.2 ĐỐI TƯỢNG ..........................................................................................24
4.2.1 Khái niệm ................................................................................. 24
4.2.2 Cú pháp khai báo đối tượng...................................................... 24
4.3 PHƯƠNG THỨC....................................................................................24
4.3.1 Khái niệm ................................................................................. 25
4.3.2 Cú pháp định nghĩa phương thức.............................................. 25
4.4 ĐỐI TƯỢNG HÀNH ĐỘNG .................................................................25
4.4.1 Khái niệm ................................................................................. 25
4.4.2 Cú pháp gọi thực hiện phương thức ......................................... 26
4.5 CHƯƠNG TRÌNH MINH HỌA.............................................................26
4.6 ỨNG DỤNG: ..........................................................................................27
4.6.1 Ứng dụng 1 ............................................................................... 27
4.6.2 Ứng dụng 2 ............................................................................... 29
4.7 BÀI TẬP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI VB.NET..............30

iii
Chương 5 PHƯƠNG THỨC THIẾT LẬP CONSTRUCTORS.. 32

5.1 MỤC ĐÍCH.............................................................................................32


5.2 CÁC ĐẶT ĐIỂM ....................................................................................32
5.3 GHI CHÚ ................................................................................................33
5.4 PHÂN LOẠI PHƯƠNG THỨC THIẾT LẬP ........................................33
5.5 ỨNG DỤNG PHƯƠNG THỨC THIẾT LẬP ........................................34
5.6 BÀI TẬP PHƯƠNG THỨC THIẾT LẬP ..............................................36

Chương 6 PHƯƠNG THỨC PHÁ HỦY ....................................... 37

6.1 MỤC ĐÍCH.............................................................................................37


6.2 CÁC ĐẶT ĐIỂM ....................................................................................37
6.3 GHI CHÚ ................................................................................................38
6.4 ỨNG DỤNG PHƯƠNG THỨC PHÁ HỦY...........................................38
6.5 BÀI TẬP PHƯƠNG THỨC PHÁ HỦY.................................................38

Chương 7 TOÁN TỬ SỐ HỌC, TOÁN TỬ GÁN, TOÁN TỬ SO


SÁNH 39

7.1 TOÁN TỬ SỐ HỌC ...............................................................................42


7.1.1 Khái niệm ................................................................................. 42
7.1.2 Ứng dụng toán tử số học........................................................... 42
7.2 TOÁN TỬ GÁN .....................................................................................44
7.3 TOÁN TỬ SO SÁNH .............................................................................44

iv
Chương 8 CƠ SỞ DỮ LIỆU ........................................................... 48

8.1 LỚP ĐỐI TƯỢNG OleDbConnection....................................................48


8.1.1 Mục đích................................................................................... 48
8.1.2 Các đặc điểm chính của lớp đối tượng OleDbConnection ....... 48
8.1.3 Cây kế thừa............................................................................... 48
8.1.4 Các thuộc tính của lớp đối tượng OleDbConnection................ 49
8.1.5 Các vấn đề cần lưu ý khi sử dụng lớp OleDbConnection......... 50
8.1.6 Phương thức thiết lập của lớp OleDbConnection..................... 50
8.1.7 Các phương thức chính của lớp đối tượng OleDbConnection.. 51
8.1.8 Hàm kết nối minh họa .............................................................. 51
8.2 LỚP ĐỐI TƯỢNG OleDbCommand.....................................................52
8.2.1 Mục đích................................................................................... 52
8.2.2 Các đặc điểm chính của lớp đối tượng OleDbCommand ......... 52
8.2.3 Cây kế thừa............................................................................... 52
8.2.4 Các thuộc tính của lớp đối tượng OleDbCommand ................. 53
8.2.5 Các vấn đề cần lưu ý khi sử dụng lớp OleDbCommand .......... 54
8.2.6 Phương thức thiết lập của lớp OleDbCommand....................... 54
8.2.7 Các phương thức chính của lớp đối tượng OleDbCommand ... 55
8.3 Sr.............................................................................................................55

PHỤ LỤC A. CÁC KIỂU DỮ LIỆU CHUẨN TRONG VB.NET57

A.1 CÁC KIỂU DỮ LIỆU CƠ SỞ ...............................................................57

v
A.2 KIỂU THAM CHIẾU ............................................................................58
A.3 ĐỐI TƯỢNG TRONG VB.NET ...........................................................59
A.3.1 Khái niệm................................................................................. 59
A.3.2 Cú pháp.................................................................................... 59
A.3.3 Các qui định khi khai báo đối tượng........................................ 59
A.4 TÀI LIỆU THAM KHẢO......................................................................60

PHỤ LỤC B. CÁC TỪ KHÓA TRONG VB.NET........................ 61

B.1 DANH SÁCH CÁC TỪ KHÓA TRONG VB.NET...............................61


B.2 TÀI LIỆU THAM KHẢO ......................................................................62

PHỤ LỤC C. CÁC TOÁN TỬ TRONG VB.NET ........................ 63

C.1 TOÁN TỬ SỐ HỌC...............................................................................63


C.1.1 Các toán tử số học cơ bản ........................................................ 63
C.1.2 Các toán tử số học viết tắt........................................................ 63
C.2 TOÁN TỬ SO SÁNH ............................................................................64
C.3 TOÁN TỬ LUẬN LÝ ............................................................................64
C.4 TOÁN TỬ TRÊN CHUỖI .....................................................................64
C.5 TÀI LIỆU THAM KHẢO ......................................................................65

PHỤ LỤC D. CÁC CẤU TRÚC ĐIỀU KHIỂN TRONG VB.NET


66

vi
D.1 CẤU TRÚC ĐIỀU KHIỂN RẼ NHÁNH ..............................................66
D.1.1 Cấu trúc điều khiển rẽ nhánh if với lệnh đơn .......................... 66
D.1.2 Cấu trúc điều khiển rẽ nhánh if với lệnh phức......................... 66
D.1.3 Cấu trúc điều khiển rẽ nhánh if else ........................................ 66
D.1.4 Cấu trúc điều khiển rẽ nhánh if else lồng nhau........................ 67
D.1.5 Cấu trúc điều khiển rẽ nhánh select case ................................. 67
D.2 CẤU TRÚC ĐIỀU KHIỂN VÒNG LẶP...............................................68
D.2.1 Cấu trúc điều khiển vòng lặp For…Next................................. 68
D.2.2 Cấu trúc điều khiển vòng lặp For Each…Next........................ 69
D.2.3 Cấu trúc điều khiển vòng lặp While…End While ................... 69
D.2.4 Cấu trúc điều khiển vòng lặp Do While…Loop ...................... 70
D.2.5 Cấu trúc điều khiển vòng lặp Do…Loop While ...................... 70
D.2.6 Cấu trúc điều khiển vòng lặp Do…Loop Until........................ 70
D.2.7 Cấu trúc điều khiển vòng lặp Do Until…Loop........................ 70
D.3 TÀI LIỆU THAM KHẢO......................................................................71

vii
Chương 01. Mở Đầu

CHƯƠNG 1 MỞ ĐẦU

Bài mẫu 1. Viết chương trình nhập họ tên, điểm


toán, điểm văn của một học sinh. Tính điểm
trung bình và xuất kết quả.

1.1 BIẾN TOÀN CỤC

1.1.1 Khái niệm

Biến toàn cục là biến được khai báo bên ngoài tất cả các hàm, thủ tục
và được hiểu bên trong tất cả các hàm và thủ tục.

Thông thường biến toàn cục được khai báo ở đầu đơn thể .

1.1.2 Lưu ý

Biến khai báo bên trong thủ tục main không là biến toàn cục mà là
biến cục bộ của thủ tục main.

1.1.3 Chương trình minh họa

Giáo trình lập trình hướng đối tượng với VB.NET 1


Chương 01. Mở Đầu

Module Module1
Public HoTen As String
Public Toan As Integer
Public Van As Integer
Public DiemTrungBinh As Double

Sub Main()
Console.Write("Nhap ho ten:")
HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
Toan = Console.ReadLine()
Console.Write("Nhap van:")
Van = Console.ReadLine()

DiemTrungBinh = (Toan + Van) / 2

Console.WriteLine("Ho ten :" & HoTen)


Console.WriteLine("Toan :" & Toan)
Console.WriteLine("Van:" & Van)
Console.WriteLine("Diem Trung Binh:" &
DiemTrungBinh)
End Sub
End Module

1.1.4 Hướng dẫn thực hành

Trong phần này hướng dẫn cách thức viết chương trình với VB.NET
ở mức Console Application.

Việc viết chương trình trong mode này nhằm giúp cho người học
từng bước làm quen với môi trường lập trình VB.NET một cách vững chắc
trước khi học cách thức xây dựng ứng dụng trên môi trường Windows.

Giáo trình lập trình hướng đối tượng với VB.NET 2


Chương 01. Mở Đầu

Đầu tiên người học phải cài đặt bộ Visual Studio 2005 lên
máy tính của mình, đây là điều kiện tiên quyết để thực hành tất cả những
kiến thức được trình bày trong sách.

Sau đây là chi tiết các bước hướng dẫn mà chúng ta nên đọc và thực
hiện ngay cùng một lúc trên máy tính để đạt được hiệu quả cao nhất:

Bước 1: Khởi động Visual Studio

Bước 2: Tạo Project

Giáo trình lập trình hướng đối tượng với VB.NET 3


Chương 01. Mở Đầu

Giáo trình lập trình hướng đối tượng với VB.NET 4


Chương 01. Mở Đầu

Bước 3: Đặt tên Solution (Chuong01) và tên Project (Muc01).

Bước 4: Quan sát môi trường làm việc.

- Cửa số Explorer

Giáo trình lập trình hướng đối tượng với VB.NET 5


Chương 01. Mở Đầu

- Cửa sổ Module1.vb, nơi viết code cho chương trình.

Bước 5: Bổ sung lệnh vào trong cửa sổ Module1.vb.

Giáo trình lập trình hướng đối tượng với VB.NET 6


Chương 01. Mở Đầu

Bước 6: Dịch chương trình (Build\Build Muc01).

Bước 7: Quan sát cửa số Output. Cửa sổ Output là cửa sổ cung cấp
thông tin về kết quả dịch Solution.

Giáo trình lập trình hướng đối tượng với VB.NET 7


Chương 01. Mở Đầu

Bước 8: Chạy chương trình (Ctrl+F5)

1.1.5 Các mẹo thực hành

Lập trình trong môi trường VB.NET hỗ trợ người lập trình rất nhiều
trong việc chọn thực hiện phương thức thực hiện như hình trên do đó khi

Giáo trình lập trình hướng đối tượng với VB.NET 8


Chương 01. Mở Đầu

lập trình ta không cần gõ đầy đủ tên phương thức mà thông thường chỉ cần
gõ 3 ký tự đầu và nhấn phím Tab để chọn luôn phương thức.

1.2 BIẾN CỤC BỘ

1.2.1 Khái niệm

Biến cục bộ là biến được hiểu bên trong một phạm vi nào đó của
chương trình. Ra khỏi phạm vi này, nó không còn được biết đến nữa.

1.2.2 Lưu ý

Một biến được khai báo bên trong thân hàm main thì được gọi là
biến cục bộ của hàm main tức là nó chỉ được hiểu bên trong thân hàm main
mà thôi.

1.2.3 Chương trình minh hoạ

Module Module1
Sub Main()
Dim HoTen As String
Dim Toan As Integer
Dim Van As Integer
Dim DiemTrungBinh As Integer
Console.Write("Nhap ho ten:")
HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
Toan = Console.ReadLine()
Console.Write("Nhap van:")
Van = Console.ReadLine()
DiemTrungBinh = (Toan + Van) / 2
Console.WriteLine("Ho ten :" & HoTen)

Giáo trình lập trình hướng đối tượng với VB.NET 9


Chương 01. Mở Đầu

Console.WriteLine("Toan :" & Toan)


Console.WriteLine("Van:" & Van)
Console.WriteLine("Diem Trung Binh:" &
DiemTrungBinh)
End Sub
End Module

1.2.4 Hướng dẫn thực hành

Bước 1: Bổ sung Project (Muc02) vào trong Solution


Chuong01 đã tạo ở trong mục trước.

Bước 2: Đặt tên Project. Ở đây Project có tên là Muc02 vả


Project được thêm vào Solution cũng được tạo ra với mode
Console Application.

Giáo trình lập trình hướng đối tượng với VB.NET 10


Chương 01. Mở Đầu

Bước 3: Quan sát cửa số Solution Explorer ta nhận thấy


Project Muc02 được tạo ra như sau:

Giáo trình lập trình hướng đối tượng với VB.NET 11


Chương 01. Mở Đầu

Bước 4: Kích hoạt Project Muc02. Bằng cách nhấp phải chuột
vào tên Project Muc02 và chọn lệnh Set As StartUp Project.

- Chọn Project Muc02


- Nhấp phải chọn Set As StartUp Project.

Lưu ý: ta có thể về cửa số Solution Explorer bằng cách nhấn


tổ hợp phím Ctrl+R.

Giáo trình lập trình hướng đối tượng với VB.NET 12


Chương 01. Mở Đầu

Bước 5. Bổ sung lệnh vào tập tin Module1.vb.

Bước 6: Chạy chương trình (Ctrl+F5)

Giáo trình lập trình hướng đối tượng với VB.NET 2


Chương 01. Mở Đầu

1.3 HÀM VÀ BIẾN TOÀN CỤC

1.3.1 Cấu trúc chương trình

Cấu trúc của một chương trình VB.NET đơn giản nhất là có duy nhất
một mô đun và trong mô đun này sẽ chứa thủ tục main và các hàm, các thủ
tục cần thiết khác.

Để khai báo một biến toàn cục cho một đơn thể ta chỉ cần khai báo
biến đó ở đầu đơn thể. Khi đó biến toàn cục của đơn thể sẽ được hiểu trong
tất cả các hàm của đơn thể nếu không gặp phải vấn đề trùng tên với biến địa
phương.

1.3.2 Chương trình minh họa

Module Module1
Dim HoTen As String
Dim Toan As Integer
Dim Van As Integer
Dim DiemTrungBinh As Double

Public Sub Nhap()


Console.Write("Nhap ho ten:")
HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
Toan = Console.ReadLine()
Console.Write("Nhap van:")
Van = Console.ReadLine()
End Sub

Public Sub XuLy()


DiemTrungBinh = (Toan + Van) / 2
End Sub
Public Sub Xuat()

Giáo trình lập trình hướng đối tượng với VB.NET 3


Chương 01. Mở Đầu

Console.WriteLine("Ho ten :" & HoTen)


Console.WriteLine("Toan :" & Toan)
Console.WriteLine("Van:" & Van)
Console.WriteLine("Diem Trung Binh:" &
DiemTrungBinh)
End Sub

Sub Main()
Nhap()
XuLy()
Xuat()
End Sub
End Module

1.3.3 Hướng dẫn thực hành

Bước 1: Bổ sung Project (Muc03) vào trong Solution


Chuong01 đã tạo ở trong mục 01.

Bước 2: Đặt tên Project. Ở đây Project có tên là Muc03 vả


Project được thêm vào Solution cũng được tạo ra với mode
Console Application.

Bước 3: Quan sát cửa số Solution Explorer để xem


Project Muc03 được tạo hay chưa.

Bước 4: Kích hoạt Project Muc03. Bằng cách nhấp phải chuột
vào tên Project Muc03 và chọn lệnh Set As StartUp Project.

Bước 5. Bổ sung lệnh vào tập tin Module1.vb của Project


Muc03.

Giáo trình lập trình hướng đối tượng với VB.NET 4


Chương 01. Mở Đầu

Bước 6: Dịch chương trình (Build\Build Solution).

Bước 7: Chạy chương trình (Ctrl+F5).

1.4 THAM SỐ VÀ HÀM, THỦ TỤC

1.4.1 Khái niệm

Các thông số đầu vào của một hàm được gọi là tham số của hàm.

Tham số (parameter) là các tên (định danh) được các thủ tục, hàm
dùng để nhận thông tin đầu vào để thực hiện các xử lý. Khi một hàm, thủ
tục được gọi thì nó sẽ đòi hỏi các đối số cụ thể tương ứng với các tham số
và thông thường các đối số này phải được gán giá trị cụ thể trước khi hàm,
thủ tục thực thi.

1.4.2 Phân loại tham số

Có hai loại tham số.

- Tham biến: thay đổi (về mặt giá trị sau lời gọi hàm). Tham số
loại này trong VB.NET được khai báo với từ khóa ByRef.
- Tham trị: Không đổi (về mặt giá trị sau lời gọi hàm). Tham số
loại này trong VB.NET được khai báo với từ khóa ByVal.

1.4.3 Chương trình minh họa

Module Module1
Public Sub Nhap(ByRef HoTen As String,

Giáo trình lập trình hướng đối tượng với VB.NET 5


Chương 01. Mở Đầu

ByRef Toan As Integer,


ByRef Van As Integer)
Console.Write("Nhap ho ten:")
HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
Toan = Console.ReadLine()
Console.Write("Nhap van:")
Van = Console.ReadLine()
End Sub

Public Sub XuLy(ByVal Toan As Integer,


ByVal Van As Integer,
ByRef DiemTrungBinh As Double)
DiemTrungBinh = (Toan + Van) / 2
End Sub
Public Sub Xuat(ByVal HoTen As String,
ByVal Toan As Integer,
ByVal Van As Integer,
ByVal DiemTrungBinh As Double)
Console.WriteLine("Ho ten :" & HoTen)
Console.WriteLine("Toan :" & Toan)
Console.WriteLine("Van:" & Van)
Console.WriteLine("Diem Trung Binh:" &
DiemTrungBinh)
End Sub
Sub Main()
Dim ht As String
Dim t As Integer
Dim v As Integer
Dim tb As Double
Nhap(ht, t, v)
XuLy(t, v, tb)
Xuat(ht, t, v, tb)
End Sub
End Module

Giáo trình lập trình hướng đối tượng với VB.NET 6


Chương 01. Mở Đầu

1.4.4 Hướng dẫn thực hành

Bước 1: Bổ sung Project (Muc04) vào trong Solution


Chuong01 đã tạo ở trong mục 01.

Bước 2: Đặt tên Project. Ở đây Project có tên là Muc04 và


Project được thêm vào Solution cũng được tạo ra với mode
Console Application.

Bước 3: Quan sát cửa số Solution Explorer để xem


Project Muc04 được tạo hay chưa.

Bước 4: Kích hoạt Project Muc04. Bằng cách nhấp phải chuột
vào tên Project Muc04 và chọn lệnh Set As StartUp Project.

Bước 5. Bổ sung lệnh vào tập tin Module1.vb của Project


Muc04.

Bước 6: Dịch chương trình (Build\Build Solution).

Bước 7: Chạy chương trình (Ctrl+F5).

1.5 KIỂU CẤU TRÚC

Khái niệm: Kiểu cấu trúc là một phương pháp dùng để tích hợp các
kiểu dữ liệu đơn thành kiểu dữ liệu phức để mô tả thông tin của một đối
tượng hay một khái niệm trong thế giới thực.

Giáo trình lập trình hướng đối tượng với VB.NET 7


Chương 01. Mở Đầu

Để truy xuất đến 1 thành phần của biến cấu trúc ta dùng toán tử
chấm (dot operator).

Chương trình minh hoạ:

Module Module1
Structure HocSinh
Dim HoTen As String
Dim Toan As Integer
Dim Van As Integer
Dim DiemTrungBinh As Double
End Structure

Public Sub Nhap(ByRef x As HocSinh)


Console.Write("Nhap ho ten:")
x.HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
x.Toan = Console.ReadLine()
Console.Write("Nhap van:")
x.Van = Console.ReadLine()
End Sub

Public Sub XuLy(ByRef x As HocSinh)


x.DiemTrungBinh = (x.Toan + x.Van) / 2
End Sub

Public Sub Xuat(ByVal x As HocSinh)


Console.WriteLine("Ho ten :" & x.HoTen)
Console.WriteLine("Toan :" & x.Toan)
Console.WriteLine("Van:" & x.Van)
Console.WriteLine("Diem Trung Binh:" &
x.DiemTrungBinh)
End Sub

Sub Main()
Dim hs As HocSinh
Nhap(hs)
XuLy(hs)

Giáo trình lập trình hướng đối tượng với VB.NET 8


Chương 01. Mở Đầu

Xuat(hs)
End Sub
End Module

1.6 ỨNG DỤNG

1.6.1 Ứng dụng 1

Bài mẫu 2. Viết chương trình nhập 1 phân số. Rút


gọn phân số và xuất kết quả.

Module Module1
Structure PhanSo
Dim Tu As Integer
Dim Mau As Integer
End Structure
Public Sub Nhap(ByRef x As PhanSo)
Console.Write("Nhap tu:")
x.Tu = Console.ReadLine()
Console.Write("Nhap mau:")
x.Mau = Console.ReadLine()
End Sub
Public Sub RutGon(ByRef x As PhanSo)
Dim a As Integer = Math.Abs(x.Tu)
Dim b As Integer = Math.Abs(x.Mau)
While (a*b<>0)
If (a>b) Then
a = a – b
Else
b = b – a
End If
End While
x.Tu=x.Tu/(a+b)
x.Mau=x.Mau/(a+b)
End Sub

Giáo trình lập trình hướng đối tượng với VB.NET 9


Chương 01. Mở Đầu

Public Sub Xuat(ByVal x As PhanSo)


Console.WriteLine("Tu :" & x.Tu)
Console.WriteLine("Mau :" & x.Mau)
End Sub

Sub Main()
Dim ps As PhanSo
Nhap(ps)
RutGon(ps)
Xuat(ps)
End Sub
End Module

1.6.2 Ứng dụng 2:

Bài mẫu 3. Viết chương trình nhập toạ độ của 2


điểm trong mặt phẳng Oxy. Tính khoảng cách
giữa 2 điểm này và xuất kết quả.

Module Module1
Structure Diem
Dim x As Double
Dim y As Double
End Structure
Public Function Nhap() As Diem
Dim temp As Diem
Console.Write("Nhap x:")
temp.x = Console.ReadLine()
Console.Write("Nhap y:")
temp.y = Console.ReadLine()
Return temp
End Function
Public Sub Xuat(ByVal P As Diem)
Console.Write("(" & P.x & "," & P.y & ")")
End Sub
Public Function KhoangCach(

Giáo trình lập trình hướng đối tượng với VB.NET 10


Chương 01. Mở Đầu

ByVal P As Diem,
ByVal Q As Diem) As Double
Return Math.Sqrt((P.x - Q.x) * (P.x - Q.x)
+ (P.y - Q.y) * (P.y - Q.y))
End Function

Sub Main()
Dim A As Diem
Dim B As Diem
Dim kc As Double
A = Nhap()
B = Nhap()
kc = KhoangCach(A, B)
Xuat(A)
Xuat(B)
End Sub
End Module

1.7 BÀI TẬP

1. Viết chương trình nhập vào một phân số. Hãy cho biết
phân số đó là phân số âm hay dương hay bằng không.

2. Viết chương trình nhập tọa độ hai điểm trong không


gian. Tính khoảng cách giữa chúng và xuất kết quả.

3. Viết chương trình nhập vào 2 phân số. Tìm phân số lớn
nhất và kết quả.

4. Viết chương trình nhập vào 2 số phức. Tính tổng, hiệu,


tích và xuất kết quả.

Giáo trình lập trình hướng đối tượng với VB.NET 11


Chương 01. Mở Đầu

5. Viết chương trình nhập toạ độ 3 đỉnh A,B,C của 1 tam


giác trong mặt phẳng Oxy. Tính chu vi của tam giác và
xuất ra kết quả.

6. Viết chương trình nhập vào một ngày. Tìm ngày kế


tiếp và xuất kết quả.

7. Viết chương trình nhập vào một ngày. Tìm ngày hôm
qa và xuất kết quả.

Giáo trình lập trình hướng đối tượng với VB.NET 12


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

CHƯƠNG 2 LẬP TRÌNH HƯỚNG ĐƠN THỂ


TRONG VB.NET

2.1 THỦ TỤC-PROCEDURE

2.1.1 Khái niệm

Một thủ tục là dãy các câu lệnh để thực thi một công việc, một chức
năng đặc thù nào đó, thủ tục được xem như là một thành phần của chương
trình. Nói một cách khác, thủ tục là các câu lệnh được nhóm vào một khối
và được đặt tên [3].

Các thủ tục có thể được gọi để thi hành (thường là thông qua tên của
thủ tục đó). Điều này cho phép gọi tới những thủ tục nhiều lần mà không
cần phải lặp lại các khối lệnh giống nhau một khi đã hoàn tất việc viết mã
lệnh cho các thủ tục đó chỉ một lần [3].

2.1.2 Cú pháp khai báo thủ tục

Cấu trúc tổng quát của việc định nghĩa một thủ tục là như sau:

[<attributelist>] [accessmodifier]
[proceduremodifiers] [Shared] [Shadows]
Sub name [(Of typeparamlist)] [(parameterlist)]
[Implements implementslist | Handles eventlist]
[ statements ]

Giáo trình lập trình hướng đối tượng với VB.NET 13


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

[ Exit Sub ]
[ statements ]
End Sub

Thông dụng nhất của việc khai báo thủ tục là như sau:

[Public, Protected, Private] Sub <Tên thủ tục>


[(Danh sách các tham số)]
<Khai báo biến thuộc tầm vực thủ tục>
Câu lệnh 1
Câu lệnh 2
...
End Sub

2.1.3 Các đặc điểm

- Từ khóa để tham khảo khái niệm thủ tục trong MSDN là “Sub
Procedures, Sub Statement” [2].
- Thủ tục được xem giống như một hàm nhưng không có giá trị
trả về.

2.2 HÀM-FUNCTION

2.2.1 Khái niệm

Một hàm là dãy các lệnh để thực thi một thao tác đặc thù nào đó như
là một phần của chương trình lớn hơn. Nói một cách khác hàm là các câu
lệnh được nhóm vào một khối, được đặt tên và có một giá trị trả về [3].

Các hàm có thể được gọi để thi hành (thường là thông qua tên của
hàm). Điều này cho phép gọi tới hàm nhiều lần mà không cần phải lặp lại

Giáo trình lập trình hướng đối tượng với VB.NET 14


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

các khối mã giống nhau một khi đã hoàn tất việc viết mã cho các hàm đó
chỉ một lần [3].

Trong VB.NET quan niệm hàm là một thủ tục có giá trị trả về.

2.2.2 Các đặc điểm

- Từ khóa để tham khảo trong MSDN là “Function


Statement” [2].

2.2.3 Cú pháp khai báo hàm

Cấu trúc tổng quát của việc định nghĩa và khai báo một hàm tương tự
như thủ tục.

[<attributelist>][accessmodifier][proceduremodifiers]
[Shared][Shadows]
Function name [(Of typeparamlist)] [(parameterlist)]
[As returntype]
[Implements implementslist | Handles eventlist]
[ statements ]
[ Exit Function ]
[ statements ]
End Function

Thông dụng nhất của việc khai báo hàm là như sau:

[Public, Protected, Private] Function <Tên Ham>


[(Danh sách các tham số)] As Kiểu dữ liệu trả về
<Khai báo biến thuộc tầm vực thủ tục>
Câu lệnh 1
Câu lệnh 2
...
End Function

Giáo trình lập trình hướng đối tượng với VB.NET 15


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

2.3 ĐƠN THỂ-MODULE

2.3.1 Khái niệm

Đơn thể là một hệ thống các thủ tục và hàm được thiết kế và xây
dựng để phục vụ cho một chức năng nào đó trong chương trình.

2.3.2 Các đặc điểm

- Từ khóa để tham khảo đơn thể trong MSDN là “module


statement” [2].

2.3.3 Cú pháp khai báo đơn thể

[<attributelist>] [accessmodifier] Module name


[statements]
End Module

2.3.4 Phân loại đơn thể

- Đơn thể hướng chức năng.


- Đơn thể hướng dữ liệu.

2.4 NAMESPACE

Namespace là hệ thống các đơn thể.

2.5 TẦM VỰC

Trong VB.NET phân biệt tầm vực theo cấp độ như sau:

Giáo trình lập trình hướng đối tượng với VB.NET 16


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

Mức (Level) Mô tả
Khối lệnh Tầm vực của các biến loại này chỉ thuộc phạm vi khối
Block scope lệnh mà biến được khai báo.
Thủ tục, Hàm Tầm vực của các biến loại này thuộc phạm vi Thủ tục,
Procedure scope Hàm mà biến được khai báo.
Đơn thể Tầm vực của các biến loại này thuộc phạm vi Đơn thể
Module scope (Module), Lớp (class), hoặc Cấu Trúc
(Structure) mà biến được khai báo.
Không gian tên Tầm vực của các biến loại này được hiểu trong toàn phạm
Namespace scope vi namespace mà nó được khai báo.
Từ khóa để tham khảo khái niệm tầm vực trong MSDN là “scope,
about scope”

2.5.1 Tầm vực khối lệnh

Trong VB.NET “khối lệnh” được xem là một trong các cấu trúc điều
khiển như sau [2]:

- Do and Loop
- For [Each] and Next
- If and End If
- Select and End Select
- SyncLock and End SyncLock
- Try and End Try
- While and End While
- With and End With

Ví dụ: Phạm vi tầm vực khối lệnh If.

If n < 5 Then

Giáo trình lập trình hướng đối tượng với VB.NET 17


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

Dim temp As Integer


temp = n ^ 2
End If

2.5.2 Tầm vực Thủ tục, Hàm

Trong VB.NET “tầm vực thủ tục hàm” được xem là một trong các
cấu trúc sau:

- Phạm vi thủ tục.

[Public, Protected, Private] Sub <Tên thủ tục>


[(Danh sách các tham số)]
<Khai báo biến thuộc tầm vực thủ tục>
Câu lệnh 1
Câu lệnh 2
...
End Sub
- Phạm vi hàm.
[Public, Protected, Private] Function <Tên Hàm>
[(Danh sách các tham số)] As Kiểu dữ liệu trả về.
<Khai báo biến thuộc tầm vực hàm>
Câu lệnh 1
Câu lệnh 2
...
End Function

Lưu ý: Trong VB.NET quan niệm hàm giống như một thủ tục nhưng
có giá trị trả về.

2.5.3 Tầm vực đơn thể

Trong VB.NET “tầm vực đơn thể” được xem là một trong các cấu
trúc sau:

Giáo trình lập trình hướng đối tượng với VB.NET 18


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

- Đơn thể-Module.
- Lớp đối tượng-Class.
- Cấu trúc-Structure.

Để khai báo biến thuộc tầm vực đơn thể ta làm như sau:

- Xét câu lệnh Dim của khai báo biến bên trong module,
class, or structure, nhưng không nằm bên trong bất cứ
thủ tục, hàm nào của đơn thể đó.
- Thay câu lệnh Dim bằng từ khóa chỉ phạm vi private.
- Khi đó ta có thể truy xuất tới biến trong bất cứ nơi đâu thuộc
đơn thể và các biến loại này không được truy xuất từ bên
ngoài đơn thể.

2.5.4 Tầm vực namespace

Để khai báo biến thuộc tầm vực namespace ta làm như sau:

- Xét câu lệnh Dim của khai báo biến bên trong module,
class, hoặc structure, nhưng không nằm bên trong bất
cứ thủ tục, hàm nào của đơn thể đó.
- Thay câu lệnh Dim bằng từ khóa chỉ phạm vi friend hoặc
public.
- Khi đó ta có thể truy xuất tới biến trong bất cứ nơi đâu thuộc
phạm vi namespace chứa module, class hoặc
structure.

Giáo trình lập trình hướng đối tượng với VB.NET 19


Chương 02. Lập Trình Hướng Đơn Thể Trong VB.NET

Lưu ý: Biến, đối tượng thuộc tầm vực namespace còn có thể được
gọi là tầm vực trong toàn bộ dự án (project).

2.6 TÀI LIỆU THAM KHẢO

[1]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[2]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Cororation.

[3]. Trang web: http://vi.wikipedia.org

Giáo trình lập trình hướng đối tượng với VB.NET 20


Chương 03. Các Phương Pháp Lập Trình

CHƯƠNG 3 CÁC PHƯƠNG PHÁP LẬP TRÌNH

3.1 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG LỆNH

Trong phương pháp này người ta xem chương trình là tập hợp các
lệnh. Khi đó việc viết chương trình là xác định xem chương trình gồm
những lệnh nào, thứ tự thực hiện của chúng ra sao.

3.2 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG THỦ TỤC VÀ HÀM

Trong phương pháp này người ta xem chương trình là một hệ thống
các thủ tục và hàm. Trong đó, mỗi thủ tục và hàm là một dãy các lệnh được
sắp thứ tự. Khi đó, việc viết chương trình là xác định xem chương trình
gồm các thủ tục và hàm nào, mối quan hệ giữa chúng ra sao?

3.3 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐƠN THỂ

3.3.1 Khái niệm

Trong phương pháp này người ta xem chương trình là 1 hệ thống các
đơn thể, mỗi đơn thể là 1 hệ thống các thủ tục và hàm. Khi đó, việc viết
chương trình là xác định xem chương trình gồm những đơn thể nào? Đơn
thể nào đã có sẵn, đơn thể nào phải đi mua, đơn thể nào phải tự viết.

Giáo trình lập trình hướng đối tượng với VB.NET 21


Chương 03. Các Phương Pháp Lập Trình

3.3.2 Phân loại đơn thể

Có 2 loại đơn thể:

- Đơn thể hướng dữ liệu.


- Đơn thể hướng chức năng.

3.4 PHƯƠNG PHÁP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Trong phương pháp này người ta xem chương trình là một hệ thống
các đối tượng, mỗi một đối tượng là sự bao bọc bên trong nó 2 thành phần:

Dữ liệu: là các thông tin về chính đối tượng. Trong một số sách,
thành phần này còn được gọi là thành phần thuộc tính, thông tin .

Hành động: là các khả năng mà đối tượng có thể thực hiện. Thành
phần này còn có các tên như sau: phương thức, hàm thành phần, hành vi.

Mỗi một đối tượng sẽ được cài đặt trong chương trình với dạng đơn
thể chứa dữ liệu. Thêm vào đó tính chất kế thừa cho phép chúng ta xây
dựng đối tượng mới dựa trên cơ sở đối tượng đã có.

3.5 CÁC NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

Ngôn ngữ lập trình hướng đối tượng đầu tiên là SMALLTALK.
Ngoài ra cho tới thời điểm hiện nay có các ngôn ngữ hỗ trợ hướng đối
tượng như sau: Eiffel, CLos, Lopps, Flavors, Pascal, C++, Delphi, Java,
Python, C#, VB.Net, ...

Giáo trình lập trình hướng đối tượng với VB.NET 22


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

CHƯƠNG 4 PHƯƠNG PHÁP LẬP TRÌNH


HƯỚNG ĐỐI TƯỢNG TRONG VB.NET

Bài mẫu 4. Viết chương trình nhập họ tên, điểm


toán, điểm văn của một học sinh. Tính điểm
trung bình và xuất kết quả.

4.1 LỚP ĐỐI TƯỢNG

4.1.1 Khái niệm

Lớp hiểu một cách đơn giản là sự tích hợp giữa hai thành phần:
thành phần dữ liệu và thành phần xử lý.

4.1.2 Cú pháp khai báo lớp

[<attributelist>] [accessmodifier] [Shadows]


[MustInherit|NotInheritable] [Partial]
Class name [(Of typelist)]
[Inherits classname]
[Implements interfacenames]
[statements]
End Class

Giáo trình lập trình hướng đối tượng với VB.NET 23


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

4.1.3 Ghi chú

- Từ khóa để tham khảo khái niệm class trong MSDN là


“Class statement”

4.2 ĐỐI TƯỢNG

4.2.1 Khái niệm

Đối tượng là 1 sự thể hiện của lớp. Một lớp có thể có nhiều sự thể
hiện khác nhau.

4.2.2 Cú pháp khai báo đối tượng

Dim variablename As [New] { objectclass | Object }

Ví dụ minh hoạ:

Dim a As new CHocSinh


Dim x As new ChocSinh
Dim y As new CHocSinh

Trong ví dụ trên ta nói a,x,y là 3 đối tượng thuộc class


CHocSinh. Nói cách khác, trong ví dụ này, lớp CHocSinh có 3 thể hiện.

4.2.3 Ghi chú

- Có thể có nhiều đối tượng cùng thuộc về một lớp.


- Từ khóa để tham khảo khái niệm đối tượng trong MSDN là
“object variables, declaring”

Giáo trình lập trình hướng đối tượng với VB.NET 24


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

4.3 PHƯƠNG THỨC

4.3.1 Khái niệm

Phương thức là khả năng mà đối tượng thuộc về lớp có thể thực hiện.

4.3.2 Cú pháp định nghĩa phương thức

[<attributelist>] [accessmodifier] [Shadows]


[MustInherit|NotInheritable] [Partial]
Class name [(Of typelist)]
[Inherits classname]
[Implements interfacenames]
[statements]
...
...
End Class

4.3.3 Ghi chú

- Từ khóa để tham khảo khái niệm method trong MSDN là


“Class statement”

4.4 ĐỐI TƯỢNG HÀNH ĐỘNG

4.4.1 Khái niệm

Đối tượng hành động là đối tượng thực hiện khả năng mà lớp nó
thuộc về có.

Giáo trình lập trình hướng đối tượng với VB.NET 25


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

4.4.2 Cú pháp gọi thực hiện phương thức

...<Tên đối tượng>.<Tên Phương Thức>(<Đối số>)...

Ví dụ:

4.5 CHƯƠNG TRÌNH MINH HỌA

Bài mẫu 5. Viết chương trình nhập họ tên, điểm


toán, điểm văn của một học sinh. Tính điểm
trung bình và xuất kết quả.

ĐƠN THỂ LỚP HỌC SINH

Public Class CHocSinh

Private HoTen As String


Private Toan As Integer
Private Van As Integer
Private DiemTrungBinh As Double

Public Sub New()


Return
End Sub

Public Sub Nhap()


Console.Write("Nhap ho ten:")
HoTen = Console.ReadLine()
Console.Write("Nhap toan:")
Toan = Console.ReadLine()
Console.Write("Nhap van:")
Van = Console.ReadLine()
End Sub

Public Sub XuLy()

Giáo trình lập trình hướng đối tượng với VB.NET 26


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

DiemTrungBinh = (Toan + Van) / 2


End Sub

Public Sub Xuat()


Console.WriteLine("Ho ten :" & HoTen)
Console.WriteLine("Toan :" & Toan)
Console.WriteLine("Van:" & Van)
Console.WriteLine("Diem Trung Binh:"
& DiemTrungBinh)
End Sub
End Class

ĐƠN THỂ CHÍNH

Module Module1
Sub Main()
Dim hs As New CHocSinh
hs.Nhap()
hs.XuLy()
hs.Xuat()
End Sub
End Module

4.6 ỨNG DỤNG:

4.6.1 Ứng dụng 1

Bài mẫu 6. Viết chương trình nhập vào một phân


số. Rút gọn phân số đó và xuất ra kết quả .

ĐƠN THỂ LỚP PHÂN SỐ

Public Class CPhanSo


Private Tu As Integer

Giáo trình lập trình hướng đối tượng với VB.NET 27


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

Private Mau As Integer

Public Sub New()


Tu = 0
Mau = 1
End Sub

Public Sub Nhap()


Console.Write("Nhap tu: ")
Tu = Console.ReadLine()
Console.Write("Nhap mau: ")
Mau = Console.ReadLine()
End Sub

Public Sub Xuat()


Console.WriteLine(Tu & "/" & Mau)
End Sub

Public Sub RutGon()


Dim a As Integer = Math.Abs(Tu)
Dim b As Integer = Math.Abs(Mau)
While (a * b <> 0)
If (a > b) Then
a = a - b
Else
b = b - a
End If
End While
Tu = Tu / (a + b)
Mau = Mau / (a + b)
End Sub
End Class

ĐƠN THỂ CHÍNH

Module Module1
Sub Main()
Dim ps As New CPhanSo
ps.Nhap()

Giáo trình lập trình hướng đối tượng với VB.NET 28


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

ps.RutGon()
ps.Xuat()
End Sub
End Module

4.6.2 Ứng dụng 2

Bài mẫu 7. Viết chương trình nhập toa độ hai điểm


trong mặt phẳng Oxy. Tính khoảng cách giữa
chúng và xuất ra kết quả.

ĐƠN THỂ LỚP CDIEM

Public Class CDiem


Private x As Double
Private y As Double
Public Sub New()
x = 0
y = 0
End Sub

Public Sub Nhap()


Console.Write("Nhap x: ")
x = Console.ReadLine()
Console.Write("Nhap y: ")
y = Console.ReadLine()
End Sub

Public Sub Xuat()


Console.Write("(" & x & "," & y & ")")
End Sub
Public Function KhoangCach(ByVal P As CDiem)
As Double
Return Math.Sqrt((x - P.x) * (x - P.x)
+ (y - P.y) * (y - P.y))
End Function

Giáo trình lập trình hướng đối tượng với VB.NET 29


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

End Class

ĐƠN THỂ CHÍNH

Module Module1
Sub Main()
Dim A As New CDiem
Dim B As New CDiem
Dim kc As Double
A.Nhap()
B.Nhap()
kc = A.KhoangCach(B)
A.Xuat()
B.Xuat()
Console.Write(vbLf & "Khoang cach giua hai diem
la:" & kc)
End Sub
End Module

4.7 BÀI TẬP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI VB.NET

Hãy làm các bài tập dưới đây bằng phương pháp lập trình hướng đối
tượng với ngôn ngữ VB.NET

8. Viết chương trình nhập vào một phân số. Hãy cho biết
phân số đó là phân số âm hay dương hay bằng không.

9. Viết chương trình nhập tọa độ hai điểm trong không


gian. Tính khoảng cách giữa chúng và xuất kết quả.

10. Viết chương trình nhập vào 2 phân số. Tìm phân số lớn
nhất và kết quả.

Giáo trình lập trình hướng đối tượng với VB.NET 30


Chương 04. Phương Pháp Lập Trình Hướng Đối Tượng Trong VB.NET

11. Viết chương trình nhập vào 2 số phức. Tính tổng, hiệu,
tích và xuất kết quả.

12. Viết chương trình nhập toạ độ 3 đỉnh A,B,C của 1 tam
giác trong mặt phẳng Oxy. Tính chu vi của tam giác và
xuất ra kết quả.

13. Viết chương trình nhập vào một ngày. Tìm ngày kế
tiếp và xuất kết quả.

14. Viết chương trình nhập vào một ngày. Tìm ngày hôm
qua và xuất kết quả.

Giáo trình lập trình hướng đối tượng với VB.NET 31


Chương 05. Phương Thức Thiết Lập-Constructors

CHƯƠNG 5 PHƯƠNG THỨC THIẾT LẬP


CONSTRUCTORS

5.1 MỤC ĐÍCH

Các phương thức thiết lập của một lớp có nhiệm vụ thiết lập thông
tin ban đầu cho các đối tượng thuộc về lớp ngay khi đối tượng được khai
báo.

5.2 CÁC ĐẶT ĐIỂM CỦA PHƯƠNG THỨC THIẾT LẬP

- Phương thức thiết lập của lớp được định nghĩa thông qua toán
tử new.
- Không có giá trị trả về.
- Được tự động gọi thực hiện ngay khi đối tượng được khai
báo.
- Có thể có nhiều phương thức thiết lập trong một lớp.
- Trong một quá trình sống của đối tượng thì chỉ có 1 lần duy
nhất phương thức thiết lập được gọi thực hiện đó là khi đối
tượng được khai báo.
- Các phương thức thiết lập của lớp thuộc nhóm các phương
thức khởi tạo.

Giáo trình lập trình hướng đối tượng với VB.NET 32


Chương 05. Phương Thức Thiết Lập-Constructors

- Từ khóa để tham khảo trong MSDN là “New


constructor”.

5.3 GHI CHÚ

Khi khai báo một lớp đối tượng trong VB.NET ta phải định nghĩa ít
nhất một phương thức thiết lập cho lớp đó. Thông thường các lập trình viên
chọn là phương thức thiết lập mặc định (không nhận tham số đầu vào). Tuy
nhiên, đây không phải là phương thức thiết lập bắt buộc phải định nghĩa.

5.4 PHÂN LOẠI PHƯƠNG THỨC THIẾT LẬP

Để đơn giản ta có thể chia các phương thức thiết lập của một lớp
thành 3 nhóm như sau:

- Phương thức thiết lập mặc định.


- Phương thức thiết lập sao chép.
- Phương thức thiết lập nhận tham số đầu vào.

Về mặt nguyên tắc có bao nhiêu phương thức khởi tạo thì có bấy
nhiêu phương thức thiết lập, phương thức khởi tạo mặc định thì tương ứng
với phương thức thiết lập mặc định, phương thức khởi tạo dựa vào 1 đối
tượng khác tương ứng 1 phương thức thiết lập sao chép, các phương thức
khởi tạo còn lại tương ứng với lại phương thức thiết lập nhận tham số đầu
vào.

Giáo trình lập trình hướng đối tượng với VB.NET 33


Chương 05. Phương Thức Thiết Lập-Constructors

5.5 ỨNG DỤNG PHƯƠNG THỨC THIẾT LẬP

Bài mẫu 8. Hãy xác định và cài đặt các phương thức
thiết lập cho lớp phân số.

Lớp phân số có hai thuộc tính tử số và mẫu số.

- Phương thức thiết lập mặc định: tử số được lấy mặc định là 0 và
mẫu số được lấy mặc định là 1.
- Phương thức thiết lập khi biết tử số: tử số được gán giá trị
tương ứng với giá trị của đối số đầu vào và mẫu số được lấy
mặc định là 1.
- Phương thức thiết lập khi biết đầy đủ thông tin: tử số và mẫu số
được gán giá trị tương ứng với giá trị của các đối số đầu vào.
- Phương thức thiết lập sao chép: nhận tham số đầu vào là một
đối tượng cùng thuộc về lớp phân số và tạo ra một đối tượng
phân số mới giống hoàn toàn đối tượng phân số đối số tương
ứng.

Chương trình minh họa

ĐƠN THỂ LỚP PHÂN SỐ

Public Class CPhanSo


‘Các thuộc tính
Private Tu As Integer
Private Mau As Integer
‘ Phương thức thiết lập mặc định
Public Sub New()

Giáo trình lập trình hướng đối tượng với VB.NET 34


Chương 05. Phương Thức Thiết Lập-Constructors

Tu = 0
Mau = 1
End Sub

‘ Phương thức thiết lập khi biết tử số


Public Sub New(ByVal t As Integer)
Tu = t
Mau = 1
End Sub

‘ Phương thức thiết lập khi biết đầy đủ thông tin


Public Sub New(ByVal t As Integer,
ByVal m As Integer)
Tu = t
Mau = m
End Sub

‘ Phương thức thiết lập sao chép


Public Sub New(ByRef ps As CPhanSo)
Tu = ps.Tu
Mau = ps.Mau
End Sub

Public Sub Nhap()


Console.Write("Nhap tu: ")
Tu = Console.ReadLine()
Console.Write("Nhap mau: ")
Mau = Console.ReadLine()
End Sub

Public Sub Xuat()


Console.WriteLine(Tu & "/" & Mau)
End Sub
End Class

HƯỚNG DẪN SỬ DỤNG CONSTRUCTOR

Module Module1
Sub Main()

Giáo trình lập trình hướng đối tượng với VB.NET 35


Chương 05. Phương Thức Thiết Lập-Constructors

Dim a As New CPhanSo


a.Xuat()
Dim b As New CPhanSo(1)
b.Xuat()
Dim c As New CPhanSo(1, 2)
c.Xuat()
Dim d As New CPhanSo(c)
d.Xuat()
End Sub
End Module

5.6 BÀI TẬP PHƯƠNG THỨC THIẾT LẬP

15. Hãy xác định và cài đặt các phương thức thiết lập cho
lớp điểm trong mặt phẳng Oxy.

16. Hãy xác định và cài đặt các phương thức thiết lập cho
lớp đường tròn trong mặt phẳng Oxy.

17. Hãy xác định và cài đặt các phương thức thiết lập cho
lớp số phức.

18. Hãy xác định và cài đặt các phương thức thiết lập cho
lớp tam giác trong mặt phẳng Oxy.

19. Hãy xác định và cài đặt các phương thức thiết lập cho
lớp ngày.

Giáo trình lập trình hướng đối tượng với VB.NET 36


Chương 06. Phương Thức Phá Hủy

CHƯƠNG 6 PHƯƠNG THỨC PHÁ HỦY

6.1 MỤC ĐÍCH

Mục tiêu: Phương thức phá huỷ có nhiệm vụ dọn dẹp “xác chết” của
đối tượng khi đối tượng “đi bán muối”. Nói cách khác, phương thức phá
huỷ có nhiệm vụ thu hồi lại tất cả các tài nguyên đã cấp phát cho đối tượng
trong quá trình sống của đối tượng khi đối tượng hết phạm vi hoạt động.

6.2 CÁC ĐẶT ĐIỂM

- Phương thức thiết lập của lớp được định nghĩa thông qua toán
tử Finalize.
- Không có giá trị trả về.
- Không có tham số đầu vào.
- Được tự động gọi thực hiện khi đối tượng hết phạm vi sử
dụng.
- Phương thức phá huỷ thuộc nhóm các phương thức xử lý.
- Có và chỉ có duy nhất một phương thức phá huỷ trong 1 lớp
mà thôi.
- Từ khóa để tham khảo trong MSDN là “Finalize
destructor”.

Giáo trình lập trình hướng đối tượng với VB.NET 37


Chương 06. Phương Thức Phá Hủy

6.3 GHI CHÚ

Một phương thức phá hủy Finalize không nên gọi


exceptions, bởi vì ứng dụng không thể quản lý được và chương trình có
thể bị ngắt giữa chừng.

6.4 ỨNG DỤNG PHƯƠNG THỨC PHÁ HỦY

Bài mẫu 9. Hãy xác định và cài đặt các phương thức
thiết lập cho lớp phân số.

6.5 BÀI TẬP PHƯƠNG THỨC PHÁ HỦY

Giáo trình lập trình hướng đối tượng với VB.NET 38


Chương 07. Câu Lệnh Property

CHƯƠNG 7 CÂU LỆNH PROPERTY

7.1 MỤC ĐÍCH

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.

7.2 CÚ PHÁP KHAI BÁO CÂU LỆNH PROPERTY

[<attributelist>][Default][accessmodifier]
[propertymodifiers][Shared][Shadows]
[ReadOnly|WriteOnly]

Property name ( [parameterlist] )


[As returntype] [Implements implementslist]
[<attributelist>] [accessmodifier] Get
[statements]
End Get
[<attributelist>][accessmodifier] Set
(ByVal value As returntype [,parameterlist])
[statements]
End Set
End Property

Giáo trình lập trình hướng đối tượng với VB.NET 39


Chương 07. Câu Lệnh Property

7.3 VÍ DỤ

Bài mẫu 10. Hãy 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
...
End Sub

Giáo trình lập trình hướng đối tượng với VB.NET 40


Chương 07. Câu Lệnh Property

End Module

7.4 CÁC LƯU Ý KHI SỬ DỤNG CÂU LỆNH PROPERTY

- Câu lệnh Property được sử dụng để cập nhật và cung cấp


thông tin của một thuộc tính. Một thuộc tính có thể có thủ tục
Get (đọc), thủ tục Set (ghi), hoặc cả hai (đọc-ghi).
- Từ khóa để tham khảo trong MSDN là “Property
Statement”.
- 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.

7.5 TÀI LIỆU THAM KHẢO

[4]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[5]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Cororation.

Giáo trình lập trình hướng đối tượng với VB.NET 41


Chương 08. Toán Tử Trong VB.NET

CHƯƠNG 8 TOÁN TỬ TRONG VB.NET

8.1 CÚ PHÁP CHUNG KHAI BÁO VÀ ĐỊNH NGHĨA TOÁN TỬ

[<attrlist>] Public [Overloads] Shared [Shadows]


[ Widening | Narrowing ]
Operator operatorsymbol ( operand1 [, operand2 ])
[ As [ <attrlist> ] type ]
[ statements ]
[ statements ]
Return returnvalue
[ statements ]
End Operator
- Từ khóa để tham khảo trong MSDN là “Operator
Statement”.

8.2 TOÁN TỬ SỐ HỌC

8.2.1 Khái niệm

8.2.2 Ứng dụng toán tử số học

Bài mẫu 11. Hãy định nghĩa toán tử cộng


(operator+) cho lớp đối tượng phân số
(CPhanSo).

ĐƠN THỂ LỚP PHÂN SỐ

Giáo trình lập trình hướng đối tượng với VB.NET 42


Chương 08. Toán Tử Trong VB.NET

Public Class CPhanSo


Private Tu As Integer
Private Mau As Integer

Public Sub New()


Tu = 0
Mau = 1
End Sub

Public Shared Operator +(ByVal x As CPhanSo,


ByVal y As CPhanSo) As CPhanSo
Dim temp As New CPhanSo
temp.Tu = x.Tu * y.Mau + x.Mau * y.Tu
temp.Mau = x.Mau * y.Mau
Return temp
End Operator

Public Sub Nhap()


...
End Sub

Public Sub Xuat()


Console.WriteLine(Tu & "/" & Mau)
End Sub
End Class

ĐƠN THỂ CHÍNH

Module Module1
Sub Main()
Dim a As New CPhanSo
Dim b As New CPhanSo
a.Nhap()
b.Nhap()
Dim kq As CPhanSo
kq = a + b
kq.Xuat()
End Sub
End Module

Giáo trình lập trình hướng đối tượng với VB.NET 43


Chương 08. Toán Tử Trong VB.NET

8.3 TOÁN TỬ GÁN

Khái niệm: Toán tử gán trong các ngôn ngữ lập trình được sử dụng
để gán giá trị của biến này cho biến khác. Trong ngôn ngữ lập trình hướng
đối tượng toán tử gán được sử dụng để gán thành phần dữ liệu của đối
tượng này cho đối tượng khác.

Trong ngôn ngữ lập trình VB.NET toán tử gán có ý nghĩa hai đối
tượng cùng tham chiếu tới một địa chỉ bộ nhớ.

8.4 TOÁN TỬ SO SÁNH

8.4.1 Khái niệm

Trong ngôn ngữ VB.NET cung cấp các toán tử so sánh như sau:

STT Toán tử Ý nghĩa Ghi chú


1 Operator < Toán tử so sánh nhỏ hơn.
2 Operator > Toán tử so sánh lớn hơn.
3 Operator = Toán tử so sánh bằng.
4 Operator <> Toán tử so sánh khác.
5 Operator >= Toán tử so sánh lớn hơn bằng.
6 Operator <= Toán tử so sánh nhỏ hơn bằng.

8.4.2 Ghi chú

- Toán tử overload được sử dụng để tái định nghĩa lại các thuộc
tính hay thủ tục có cùng một tên

Giáo trình lập trình hướng đối tượng với VB.NET 44


Chương 08. Toán Tử Trong VB.NET

8.4.3 Ứng dụng toán tử so sánh

Bài mẫu 12. Hãy định nghĩa toán tử so sánh lớn


hơn (operator>) cho lớp đối tượng phân số
(CPhanSo).

Public Class CPhanSo


Private Tu As Integer
Private Mau As Integer

Public Sub New()


Tu = 0
Mau = 1
End Sub

Public Overloads Shared Operator –(ByVal x As


CPhanSo, ByVal y As CPhanSo) As CPhanSo
Dim temp As New CPhanSo
temp.Tu = x.Tu * y.Mau - x.Mau * y.Tu
temp.Mau = x.Mau * y.Mau
temp.Rutgon()
Return temp
End Operator

Public Overloads Shared Operator >(ByVal x As


CPhanSo, ByVal y As CPhanSo) As Boolean
Dim temp As New CPhanSo
temp = x - y
Return (temp.Tu * temp.Mau > 0)
End Operator

Public Overloads Shared Operator <(ByVal x As


CPhanSo, ByVal y As CPhanSo) As Boolean
Dim temp As New CPhanSo
temp = x - y
Return (temp.Tu * temp.Mau < 0)
End Operator

Giáo trình lập trình hướng đối tượng với VB.NET 45


Chương 08. Toán Tử Trong VB.NET

Public Sub Rutgon()


Dim a As Integer = Math.Abs(Tu)
Dim b As Integer = Math.Abs(Mau)
While (a * b <> 0)
If (a > b) Then
a -= b
Else
b -= a
End If
End While
Tu = Tu / (a + b)
Mau = Mau / (a + b)
End Sub

Public Sub Nhap()


Console.Write("Nhap tu: ")
Tu = Console.ReadLine()
Console.Write("Nhap mau: ")
Mau = Console.ReadLine()
End Sub

Public Sub Xuat()


Console.WriteLine(Tu & "/" & Mau)
End Sub
End Class

8.5 TOÁN TỬ ÉP KIỂU

8.5.1 Khái niệm

Toán tử ép kiểu được sử dụng để ép một đối tượng thuộc lớp này
thành một đối tượng thuộc lớp khác.

Giáo trình lập trình hướng đối tượng với VB.NET 46


Chương 08. Toán Tử Trong VB.NET

8.5.2 Ghi chú

- Để định nghĩa toán tử ép kiểu ta phải sử dụng từ khóa


widening trong việc định nghĩa.
- Từ khóa widening được sử dụng chung với thủ tục có khai báo
public shared.

8.5.3 Ứng dụng toán tử ép kiểu

Bài mẫu 13. Hãy định nghĩa toán tử ép kiểu


(CType) để ép một đối tượng thuộc lớp số
nguyên thành một đối tượng phân số
(CPhanSo).

Public Shared Widening Operator CType(ByVal t As


Integer) As CPhanSo
Dim temp As New CPhanSo
temp.Tu = t
temp.Mau = 1
Return temp
End Operator

Giáo trình lập trình hướng đối tượng với VB.NET 47


Chương 09. Cơ Sở Dữ Liệu

CHƯƠNG 9 CƠ SỞ DỮ LIỆU

9.1 LỚP ĐỐI TƯỢNG OLEDBCONNECTION

9.1.1 Mục đích

OleDbConnection là một lớp đối tượng được sử dụng để kết nối cơ


sở dữ liệu.

9.1.2 Các đặc điểm chính của lớp đối tượng OleDbConnection

- Không cho phép một lớp đối tượng khác kế thừa.


- Kế thừa trực tiếp từ lớp đối tượng DbConnection.
- Namespace: System.Data.OleDb
- Assembly: System.Data (in system.data.dll)

9.1.3 Cây kế thừa

System.Object
System.MarshalByRefObject
System .ComponentModel.Component
System.Data.Common.DbConnection
System.Data.Odbc.OdbcConnection
System.Data.OleDb.OleDbConnection

Giáo trình lập trình hướng đối tượng với VB.NET 48


Chương 09. Cơ Sở Dữ Liệu

9.1.4 Các thuộc tính của lớp đối tượng OleDbConnection

Danh sách các thuộc tính thuộc phạm vi public của lớp đối tượng
OleDbConnection.

Các thuộc tính thuộc phạm vi public của lớp đối tượng OleDbConnection
TT Tên thuộc tính Ý nghĩa
Overridden. Gets or sets the string used to open a
1 ConnectionString
database.
Overridden. Gets the time to wait while trying to
2 ConnectionTimeout establish a connection before terminating the attempt
and generating an error.
Gets the IContainer that contains the
3 Container
Component.(Inherited from Component.)
Overridden. Gets the name of the current database or
4 Database
the database to be used after a connection is opened.
Overridden. Gets the server name or file name of the
5 DataSource
data source.
Gets the name of the OLE DB provider specified in
6 Provider
the "Provider= " clause of the connection string.
Overridden. Gets a string that contains the version of
7 ServerVersion
the server to which the client is connected.
Gets or sets the ISite of the Component.(Inherited
8 Site
from Component.)
9 State Overridden. Gets the current state of the connection

Danh sách các thuộc tính thuộc phạm vi protected của lớp đối tượng
OleDbConnection.

Các thuộc tính thuộc phạm vi protected của lớp đối tượng OleDbConnection
TT Tên thuộc tính Ý nghĩa
Gets a value indicating whether the component can
1 CanRaiseEvents
raise an event.(Inherited from Component.)
Gets a value that indicates whether the Component is
2 DesignMode currently in design mode.(Inherited from
Component.)

Giáo trình lập trình hướng đối tượng với VB.NET 49


Chương 09. Cơ Sở Dữ Liệu

Các thuộc tính thuộc phạm vi protected của lớp đối tượng OleDbConnection
TT Tên thuộc tính Ý nghĩa
Gets the list of event handlers that are attached to
3 Events
this Component.(Inherited from Component.)

9.1.5 Các vấn đề cần lưu ý khi sử dụng lớp OleDbConnection

When you create an instance of OleDbConnection, all properties are


set to their initial values. For a list of these values, see the
OleDbConnection constructor.

If the OleDbConnection goes out of scope, it is not closed.


Therefore, you must explicitly close the connection by calling Close or
Dispose, or by using the OleDbConnection object within a Using statement.

9.1.6 Phương thức thiết lập của lớp OleDbConnection

Lớp OleDbConnection có hai phương thức thiết lập:

- OleDbConnection ()
- OleDbConnection (String)

Trong đó phương thức thiết lập mặt định sẽ tạo ra một thể hiện (một
đối tượng) của lớp OleDbConnection.

Phương thức thiết lập nhận tham số đầu vào là một chuỗi ký tự tương
ứng với chuỗi kết nối dữ liệu.

Phương thức thiết lập


TT Dạng thức khai báo Dạng thức sử dụng
1 Public Sub New Dim instance As New OleDbConnection

Giáo trình lập trình hướng đối tượng với VB.NET 50


Chương 09. Cơ Sở Dữ Liệu

Phương thức thiết lập


TT Dạng thức khai báo Dạng thức sử dụng
Dim connectionString As String
Public Sub New
2 Dim instance As New OleDbConnection
(connectionString As String)
(connectionString)

9.1.7 Các phương thức chính của lớp đối tượng OleDbConnection

Danh sách các phương thức chính


TT Dạng thức khai báo Dạng thức sử dụng
Dim instance As OleDbConnection
1 Public Overrides Sub Close
Instance.Close
Dim instance As Component
2 Public Sub Dispose
Instance.Dispose
Dim instance As OleDbConnection
3 Public Overrides Sub Open
Instance.Open

9.1.8 Hàm kết nối minh họa

Hàm cài đặt dưới đây thực hiện kết nối với cơ sở dữ liệu
HocSinh.mdb được tạo bởi Microsoft Access. Tập tìn HocSinh.mdb được
để trong thư mục Bin hoặc thư mục Release trong thư mục Bin của project
đang viết.

Public Function ConnectionData() As OleDbConnection


Dim objOleDbConnect As OleDbConnection
Dim strConnectString As String
strConnectString="Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=HocSinh.mdb;"
Try
objOleDbConnect=
New OleDbConnection(strConnectString)
objOleDbConnect.Open()
Return objOleDbConnect
Catch ex As Exception
Console.Write(ex.ToString)
Return Nothing

Giáo trình lập trình hướng đối tượng với VB.NET 51


Chương 09. Cơ Sở Dữ Liệu

End Try
End Function

9.2 LỚP ĐỐI TƯỢNG OLEDBCOMMAND

9.2.1 Mục đích

Represents an SQL statement or stored procedure to execute against


a data source.

9.2.2 Các đặc điểm chính của lớp đối tượng OleDbCommand

- Không cho phép một lớp đối tượng khác kế thừa.


- Kế thừa trực tiếp từ lớp đối tượng DbCommand.
- Namespace: System.Data.OleDb
- Assembly: System.Data (in system.data.dll)

9.2.3 Cây kế thừa

System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbCommand
System.Data.Odbc.OdbcCommand
System.Data.OleDb.OleDbCommand
System.Data.OracleClient.OracleCommand
System.Data.SqlClient.SqlCommand
System.Data.SqlServerCe.SqlCeCommand

Giáo trình lập trình hướng đối tượng với VB.NET 52


Chương 09. Cơ Sở Dữ Liệu

9.2.4 Các thuộc tính của lớp đối tượng OleDbCommand

Danh sách các thuộc tính thuộc phạm vi public của lớp đối tượng
OleDbCommand.

Các thuộc tính thuộc phạm vi public của lớp đối tượng OleDbCommand
TT Tên thuộc tính Ý nghĩa
CommandText Overridden. Gets or sets the SQL statement or stored
1
procedure to execute at the data source.
CommandTimeout Overridden. Gets or sets the wait time before
2 terminating an attempt to execute a command and
generating an error.
CommandType Overridden. Gets or sets a value that indicates how
3
the CommandText property is interpreted.
Connection Gets or sets the OleDbConnection used by this
4
instance of the OleDbCommand.
Container Gets the IContainer that contains the
5
Component.(Inherited from Component.)
DesignTimeVisible Overridden. Gets or sets a value that indicates
6 whether the command object should be visible in a
customized Windows Forms Designer control.
7 Parameters Gets the OleDbParameterCollection.
Site Gets or sets the ISite of the Component.(Inherited
8
from Component.)
Transaction Gets or sets the OleDbTransaction within which the
9
OleDbCommand executes.
UpdatedRowSource Overridden. Gets or sets how command results are
10 applied to the DataRow when used by the Update
method of the OleDbDataAdapter.
Danh sách các thuộc tính thuộc phạm vi protected của lớp đối tượng
OleDbCommand.

Các thuộc tính thuộc phạm vi protected của lớp đối tượng OleDbCommand
TT Tên thuộc tính Ý nghĩa
CanRaiseEvents Gets a value indicating whether the component can
1
raise an event.(Inherited from Component.)

Giáo trình lập trình hướng đối tượng với VB.NET 53


Chương 09. Cơ Sở Dữ Liệu

Các thuộc tính thuộc phạm vi protected của lớp đối tượng OleDbCommand
TT Tên thuộc tính Ý nghĩa
DesignMode Gets a value that indicates whether the Component is
2 currently in design mode.(Inherited from
Component.)
Events Gets the list of event handlers that are attached to
3
this Component.(Inherited from Component.)

9.2.5 Các vấn đề cần lưu ý khi sử dụng lớp OleDbCommand

When an instance of OleDbCommand is created, the read/write


properties are set to their initial values. For a list of these values, see the
OleDbCommand constructor.

9.2.6 Phương thức thiết lập của lớp OleDbCommand

Lớp OleDbCommand có các phương thức thiết lập:

- OleDbCommand ()
- OleDbCommand (String)
- OleDbCommand (String, OleDbConnection)
- OleDbCommand (String, OleDbConnection,
OleDbTransaction)

Các dạng thức khai báo và sử dụng

Phương thức thiết lập


TT Dạng thức khai báo Dạng thức sử dụng
1 Public Sub New Dim instance As New OleDbCommand
Public Sub New (cmdText Dim cmdText As String
2
As String ) Dim instance As New OleDbCommand(cmdText)

Giáo trình lập trình hướng đối tượng với VB.NET 54


Chương 09. Cơ Sở Dữ Liệu

Phương thức thiết lập


TT Dạng thức khai báo Dạng thức sử dụng
Dim cmdText As String
Public Sub New (cmdText
Dim connection As OleDbConnection
3 As String,connection As
Dim instance As New OleDbCommand(cmdText,
OleDbConnection)
connection)
Public Sub New Dim cmdText As String
( cmdText As String, Dim connection As OleDbConnection
connection As Dim transaction As OleDbTransaction
4
OleDbConnection,
transaction As Dim instance As New OleDbCommand(cmdText,
OleDbTransaction ) connection, transaction)

9.2.7 Các phương thức chính của lớp đối tượng OleDbCommand

Danh sách các phương thức chính


TT Dạng thức khai báo Dạng thức sử dụng
Dim instance As OleDbCommand
Public Function
Dim returnValue As OleDbDataReader
1 ExecuteReader As
OleDbDataReader
returnValue = instance.ExecuteReader
Dim instance As OleDbCommand
2 Public Sub Dispose
instance.Dispose
Phương thức ExecuteReader Sends the CommandText to the
Connection and builds an OleDbDataReader.

Phương thức Dispose kế thừa từ lớp Component.

9.3 SR

System.Object
System.MarshalByRefObject
System.Data.Common.DbDataReader
System.Data.OleDb.OleDbDataReader

Giáo trình lập trình hướng đối tượng với VB.NET 55


Chương 09. Cơ Sở Dữ Liệu

To create an OleDbDataReader, you must call the ExecuteReader


method of the OleDbCommand object, instead of directly using a
constructor.

While the OleDbDataReader is being used, the associated


OleDbConnection is busy serving the OleDbDataReader, and no other
operations can be performed on the OleDbConnection other than closing
it. This is the case until the Close method of the OleDbDataReader is
called. For example, you cannot retrieve output parameters until after you
call Close.

Changes made to a result set by another process or thread while data


is being read may be visible to the user of the OleDbDataReader.
However, the precise behavior is timing dependent.

IsClosed and RecordsAffected are the only properties that you can
call after the OleDbDataReader is closed. Although the RecordsAffected
property may be accessed while the OleDbDataReader exists, always call
Close before returning the value of RecordsAffected to guarantee an
accurate return value.

Giáo trình lập trình hướng đối tượng với VB.NET 56


Phụ Lục A. Các Kiểu Dữ Liệu Chuẩn Trong VB.NET

PHỤ LỤC A. CÁC KIỂU DỮ LIỆU CHUẨN


TRONG VB.NET

A.1 CÁC KIỂU DỮ LIỆU CƠ SỞ

Các kiểu dữ liệu cơ sở là các kiểu dữ liệu được cung cấp bởi Trình
Biên Dịch (compiler). Giá trị của các kiểu dữ liệu này luôn luôn được phép
truy xuất một cách trực tiếp. Mặt khác VB.NET là một ngôn ngữ hoàn toàn
huớng đối tượng nên ta có thể nói các kiểu dữ liệu cơ sở là: các
lớp đối tượng cơ sở và các lớp này đều kế thừa từ lớp
System.Object.

Kích Phạm vi biễu


STT Tên Kiểu Cây kế thừa Giá trị mặc định
thước diễn
True hoặc
1 Boolean System.Boolean 4 byte False
False
2 Byte System.Byte 1 byte 0 [0, 255]
3 Char System.Char 2 byte Char(0) [0..65.535]
#01/01/2001 [01/01/0001,
4 Date System.DateTime 8 byte
12:00:00 AM# ..,31/12/9999]

5 Decimal System.Decimal 12 byte 0D 7.9...E+28


6 Double System.Double 8 byte 0.0 1.7...E+308
7 Integer System. Int32 4 byte 0 4.2...E+9
8 Long System.Int64 8 byte 0 1.8...E+19

Giáo trình lập trình hướng đối tượng với VB.NET 57


Phụ Lục A. Các Kiểu Dữ Liệu Chuẩn Trong VB.NET

Kích Phạm vi biễu


STT Tên Kiểu Cây kế thừa Giá trị mặc định
thước diễn
9 Short System.Int16 2 byte 0 6.5...E+4
10 Single System.Single 4 byte 0.0 3.4...E+38
11 Structure System.ValueType

Structure là một kiểu dữ liệu do người dùng tự định nghĩa (UDT–


user defined type).

Ví dụ: Khai báo kiểu dữ liệu phân số.

Structure PhanSo
Dim Tu As Integer
Dim Mau As Integer
End Structure

Các đặc điểm của một structure trong VB.NET

- Structure được xem như là một đơn thể đơn (single unit).
- Structure không được kế thừa từ một kiểu dữ liệu khác.
- Một Class-Lớp đối tượng không được kế thừa từ Structure.

A.2 KIỂU THAM CHIẾU

Kích Phạm vi biễu


STT Tên Kiểu Cây kế thừa Giá trị mặc định
thước diễn
1 Object System. Object 4 byte
10+(2)
2 String System.String 1 tỉ ký tự
byte

Giáo trình lập trình hướng đối tượng với VB.NET 58


Phụ Lục A. Các Kiểu Dữ Liệu Chuẩn Trong VB.NET

A.3 ĐỐI TƯỢNG TRONG VB.NET

A.3.1 Khái niệm

Khái niệm: đối tượng là một sự thể hiện của lớp.

A.3.2 Cú pháp

Dim <Tên đối tượng> As <Tên Lớp>

Ví dụ 1: Khai báo đối tượng n thuộc lớp Integer.

Dim n As Integer ‘Đối tượng n thuộc lớp số nguyên

Ví dụ 2: Khai báo và khởi gán giá trị ban đầu là 100 đối tượng n
thuộc lớp Integer.

Dim n As Integer = 100

A.3.3 Các qui định khi khai báo đối tượng

- Không có khoảng trắng.


- Không được bắt đầu bằng ký số. Phải bắt đầu bằng một chữ cái
hay dấu gạch dưới (_).
- Không được chứa ký tự đặc biệt.
- Không được trùng với các từ khóa (keyword) trong ngôn ngữ
VB.NET.
- Chiều dài không vượt quá 16.383 ký tự.
- Phải là duy nhất trong tầm vực (scope) của nó.

Ví dụ: Các cách thúc đặt tên đối tượng dưới đây là sai:

Giáo trình lập trình hướng đối tượng với VB.NET 59


Phụ Lục A. Các Kiểu Dữ Liệu Chuẩn Trong VB.NET

Dim so nguyen As Integer ‘Sai vì có khoảng trắng


Dim 123A As Double ‘Sai vì bắt đầu bằng một ký số
Dim for As String ‘Sai vì trùng với từ khóa

A.4 TÀI LIỆU THAM KHẢO

[1]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[2]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Cororation.

Giáo trình lập trình hướng đối tượng với VB.NET 60


Phụ Lục B. Các Từ Khóa Trong VB.NET

PHỤ LỤC B. CÁC TỪ KHÓA TRONG VB.NET

B.1 DANH SÁCH CÁC TỪ KHÓA TRONG VB.NET

Chữ cái Các từ khóa


A Alias AddHandler Ansi
A As Assembly Auto
B Binary ByRef ByVal
C Case Catch Class Custom
D Default DirectCast
E Each Else ElseIf
E End Error
F False Finally For Friend
G, H Global Handles
I Implements In Is
L Lib Loop
M Me Module MustInherit
M MustOverride MyBase MyClass
N Narrowing New Next
N Nothing NotInheritable NotOverridable
O Of Off On Option
O Optional Overloads Overridable Overrides
P ParamArray Partial Preserve
P Private Protected Public
R RaiseEvent ReadOnly Resume
S Shadows Shared Static
S Step Structure
T Text Then To
T True TryCast
U Unicode Until
W When While Widening
W WithEvents WriteOnly

Giáo trình lập trình hướng đối tượng với VB.NET 61


Phụ Lục B. Các Từ Khóa Trong VB.NET

B.2 TÀI LIỆU THAM KHẢO

[1]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[2]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Corporation..

Giáo trình lập trình hướng đối tượng với VB.NET 62


Phụ Lục D. Các Toán Tử Trong VB.NET

PHỤ LỤC C. CÁC TOÁN TỬ TRONG VB.NET

C.1 TOÁN TỬ SỐ HỌC

C.1.1 Các toán tử số học cơ bản

STT Toán tử Ý nghĩa Ghi chú


1 Operator + Phép cộng 2 ngôi.
2 Operator - Phép trừ 2 ngôi.
3 Operator * Phép nhân 2 ngôi.
4 Operator ^ Phép lũy thừa.
5 Operator / Phép chia 2 ngôi (chia thực).
6 Operator \ Phép chia 2 ngôi (chia nguyên).
7 Phép chia lấy phần dư của phép
Operator Mod
chia nguyên.

C.1.2 Các toán tử số học viết tắt

STT Toán tử Ý nghĩa Ghi chú


1 Operator += Toán tử cộng bằng.
2 Operator -= Toán tử trừ bằng.
3 Operator *= Toán tử nhân bằng.
4 Operator ^= Toán tử lũy thừa bằng.
5 Operator /= Toán tử chia bằng (chia thực).
6 Operator \= Toán tử chia bằng (chia nguyên)

Giáo trình lập trình hướng đối tượng với VB.NET 63


Phụ Lục D. Các Toán Tử Trong VB.NET

C.2 TOÁN TỬ SO SÁNH

STT Toán tử Ý nghĩa Ghi chú


1 Operator < Toán tử so sánh nhỏ hơn.
2 Operator > Toán tử so sánh lớn hơn.
3 Operator = Toán tử so sánh bằng.
4 Operator <> Toán tử so sánh khác.
5 Operator >= Toán tử so sánh lớn hơn bằng.
6 Operator <= Toán tử so sánh nhỏ hơn bằng.

C.3 TOÁN TỬ LUẬN LÝ

STT Toán tử Ý nghĩa Ghi chú


1 And Toán tử và.
2 Not Toán tử phủ định.
3 Or Toán tử hoặc.
4 Xor Toán tử xor.

C.4 TOÁN TỬ TRÊN CHUỖI

STT Toán tử Ý nghĩa Ghi chú


Toán tử ghép hai chuỗi hoặc ghép
1 Toán tử &
chuỗi và số.
2 Toán tử + Toán tử ghép hai chuỗi.
Toán tử ghép hai chuỗi hoặc ghép
3 Toán tử &=
chuỗi và số.
Phân tích sự khác nhau giữa toán tử & và toán tử + trên chuỗi.

Giáo trình lập trình hướng đối tượng với VB.NET 64


Phụ Lục D. Các Toán Tử Trong VB.NET

C.5 TÀI LIỆU THAM KHẢO

[1]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[2]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Corporation.

Giáo trình lập trình hướng đối tượng với VB.NET 65


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

PHỤ LỤC D. CÁC CẤU TRÚC ĐIỀU KHIỂN


TRONG VB.NET

D.1 CẤU TRÚC ĐIỀU KHIỂN RẼ NHÁNH

D.1.1 Cấu trúc điều khiển rẽ nhánh if với lệnh đơn

If <Điều kiện> Then Câu Lệnh

D.1.2 Cấu trúc điều khiển rẽ nhánh if với lệnh phức

If <Điều kiện> Then


Câu lệnh 1
Câu lệnh 2
...
End If

D.1.3 Cấu trúc điều khiển rẽ nhánh if else

If <Điều kiện> Then


Câu lệnh 1
Câu lệnh 2
...
Else
Câu lệnh 1
Câu lệnh 2
...
End If

Giáo trình lập trình hướng đối tượng với VB.NET 66


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

D.1.4 Cấu trúc điều khiển rẽ nhánh if else lồng nhau

If <Điều kiện> Then


Câu lệnh 1
Câu lệnh 2
...
ElseIf <Điều kiện> then
Câu lệnh 1
Câu lệnh 2
...
Else
Câu lệnh 1
Câu lệnh 2
...
End If

D.1.5 Cấu trúc điều khiển rẽ nhánh select case

Select case <Biểu thức>


Case is <Trường Hợp 1>
Câu lệnh 1
Câu lệnh 2
...
Case is <Trường Hợp 2>
Câu lệnh 1
Câu lệnh 2
...
Case is <Trường Hợp n>
Câu lệnh 1
Câu lệnh 2
...
Case else
Câu lệnh 1
Câu lệnh 2
...
End select

Ví dụ:

Giáo trình lập trình hướng đối tượng với VB.NET 67


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

Module Module1
Sub Main()
Dim n As Integer
Console.Write("Nhap n:")
n = Console.ReadLine()
Select Case n
Case 0
Console.Write("Khong biet gi het")
Case Is < 5
Console.Write("Rot")
Case 5 To 6
Console.Write("Dau Trung Binh")
Case 7 To 8
Console.Write("Kha")
Case 8 To 10
Console.Write("Gioi")
Case Else
Console.Write("Khong hop le")
End Select
End Sub
End Module

D.2 CẤU TRÚC ĐIỀU KHIỂN VÒNG LẶP

D.2.1 Cấu trúc điều khiển vòng lặp For…Next

For <bienchiso>=<Cs đầu> To <Cs cuối>


Câu lệnh 1
Câu lệnh 2
...
Next bienchiso

Trong cấu trúc trên biến chỉ số (bienchiso) được tăng mặc định
lên 1 ở cuối mỗi lần lặp. Hoặc

For <bienchiso>=<Cs đầu> To <Cs cuối> Step <BuocTang>


Câu lệnh 1

Giáo trình lập trình hướng đối tượng với VB.NET 68


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

Câu lệnh 2
...
Next bienchiso

Trong cấu trúc trên biến chỉ số (bienchiso) được tăng lên theo
BuocTang ở cuối mỗi lần lặp. Hoặc

For <bienchiso>=<Cs đầu> To <Cs cuối> Step <BuocTang>


Câu lệnh 1
Câu lệnh 2
...
Next

Trong cấu trúc trên biến chỉ số (bienchiso) được tăng lên theo
<BuocTang> ở cuối mỗi lần lặp và không chỉ ra bienchiso trong câu
lệnh next. Hoặc dạng tổng quát của cấu trúc điều khiển vòng lặp For

For counter [As datatype]=start To end [Step step]


[statements]
[Exit For]
[statements]
Next [counter]

D.2.2 Cấu trúc điều khiển vòng lặp For Each…Next

For Each element [ As datatype ] In group


[ statements ]
[ Exit For ]
[ statements ]
Next [element]

D.2.3 Cấu trúc điều khiển vòng lặp While…End While

While (<điều kiện lặp>)


Câu lệ 1
Câu lệnh 2

Giáo trình lập trình hướng đối tượng với VB.NET 69


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

...
End While

D.2.4 Cấu trúc điều khiển vòng lặp Do While…Loop

Do While(<điều kiện lặp>)


Câu lệnh 1
Câu lệnh 2
...
Loop

D.2.5 Cấu trúc điều khiển vòng lặp Do…Loop While

Do
Câu lệnh 1
Câu lệnh 2
...
Loop While(<điều kiện lặp>)

D.2.6 Cấu trúc điều khiển vòng lặp Do…Loop Until

Do
Câu lệnh 1
Câu lệnh 2
...
Loop Until(<điều kiện dừng>)

D.2.7 Cấu trúc điều khiển vòng lặp Do Until…Loop

Do Until(<điều kiện dừng>)


Câu lệnh 1
Câu lệnh 2
...
Loop

Giáo trình lập trình hướng đối tượng với VB.NET 70


Phụ Lục D. Các Cấu Trúc Điều Khiển Trong VB.NET

D.3 TÀI LIỆU THAM KHẢO

[1]. Connell–Coding Techniques for Microsoft Visual Basic .NET–


Copyright © 2002 by Microsoft Corporation.

[2]. Microsoft Visual Studio 2005 Documentation–Copyright © 2002


by Microsoft Corporation.

Giáo trình lập trình hướng đối tượng với VB.NET 71

You might also like