CHƯƠNG TRÌNH MINH HỌA

Một phần của tài liệu Giáo trình: Lập trình hướng đối tượng với VB.NET (Trang 44)

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

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 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.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 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

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ả.

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.

- 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.

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()

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

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

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”.

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ố.

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

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 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.

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).

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

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

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

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.

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

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

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

1 ConnectionString Overridden. Gets or sets the string used to open a database.

2 ConnectionTimeout

Overridden. Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error.

3 Container Gets the IContainer that contains the Component.(Inherited from Component.)

4 Database Overridden. Gets the name of the current database or the database to be used after a connection is opened.

5 DataSource Overridden. Gets the server name or file name of the data source.

6 Provider Gets the name of the OLE DB provider specified in the "Provider= " clause of the connection string. 7 ServerVersion Overridden. Gets a string that contains the version of the server to which the client is connected.

8 Site Gets or sets the ISite of the Component.(Inherited 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

1 CanRaiseEvents Gets a value indicating whether the component can raise an event.(Inherited from Component.)

2 DesignMode

Gets a value that indicates whether the Component is currently in design mode.(Inherited from

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

3 Events Gets the list of event handlers that are attached to 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

Một phần của tài liệu Giáo trình: Lập trình hướng đối tượng với VB.NET (Trang 44)

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

(89 trang)