1. Trang chủ
  2. » Công Nghệ Thông Tin

Kỹ thuật lập trình trong VB NET

19 282 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 19
Dung lượng 291,24 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Buổi 5: Kỹ thuật lập trình trong VB.NET OOP: Object Orientation Programming ™ Hàm Function [Public, Protected, Private] Function _ [Danh sách các tham số] AS _ [ Handles eventlist ] [

Trang 1

Windows Form programming with VB.Net 2005.

Buổi 5: Kỹ thuật lập trình trong VB.NET

(OOP: Object Orientation Programming)

™ Hàm (Function)

[Public, Protected, Private] Function <Tên hàm> _

[(Danh sách các tham số)] AS <ReturnType> _ [ Handles

eventlist ]

[Khai báo biến thuộc tầm vực của hàm]

[Các câu lệnh …]

[Exit Fucntion]

Return <ReturnType>

End Fucntion

- Một Hàmlà 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 đó

- Hàm được gọi để thi hành thôngqua tên thủ tục

- Hàmthường có giá trị trả về

Trang 2

Windows Form programming with VB.Net 2005.

If a > b Then

Else

End If

End Function

Dim C as Integer

C = Max(a,b)

VD: Hàm

™ Thủ tục (Procedure)

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

[(Danh sách các tham số)] [Handles eventlist]

[Khai báo biến thuộc tầm vực của thủ tục]

[Các câu lệnh …]

[Exit Sub]

End Sub

- Chức năng của thủ tục giống như Hàm, nhưng

Thủ tục không có giá trị trả về

Trang 3

Windows Form programming with VB.Net 2005.

Private Sub bntAn_Click ( , ) Handles bntAn.Click

AnGioiTinh()

End Sub

Private Sub AnGioiTinh()

Dim rdb As RadioButton

For Each Ctrl As Control In GroupBox1.Controls

On Error Resume Next ' Có lỗi bỏ qua

rdb = CType (Ctrl , RadioButton) ' chuyển kiểu

rdb.Visible = False

Next

GroupBox1.Text = "Sở thích:“

End Sub

VD: Thủ tục

Trang 4

Windows Form programming with VB.Net 2005.

Public Function GetCommand() As OleDbCommand

Dim cn As New OleDbConnection

Dim cmd As New OleDbCommand

Dim strConnection As String =

"Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=D:\QLNhanSu.mdb"

cn.ConnectionString = strConnection

cn.Open()

cmd.CommandType = CommandType.StoredProcedure

cmd.CommandText = “sp_NhanVien”

cmd.Connection = cn

return cmd

End Function

VD: Hàm trả về 1 đối tượng Command

VD: DataAdapter & Fill cho DataTable

public function GetDataTable() as DataTable

Dim da As New OleDbDataAdapter()

Dim tb As New DataTable()

Try ‘ Cmd đối tượng đã được khai báo & khởi tạ

da.SelectCommand = Cmd ‘ = GetCommand()

da.Fill(tb)

Return tb

Catch ex As Exception

MsgBox(ex.Message)

Return Nothing

End Try

End Function

Trang 5

Windows Form programming with VB.Net 2005.

VD: DataAdapter & Fill cho DataSet

Public Function GetDataSet() as DataSet

Dim da As New OleDbDataAdapter()

Dim ds As New DataSet()

Try ‘ Cmd đối tượng đã được khai báo & khởi tạ

da.SelectCommand = Cmd ‘ = GetCommand()

da.Fill(ds) ‘da.Fill(ds, “TableName”)

Return ds

Catch ex As Exception

MsgBox(ex.Message)

Return Nothing

End Try

End Function

Public Function GetDataReader ( ByVal StoreProceureName As

String , Optional ByVal arrParams() As String = Nothing,

Optional ByVal arrValues() As Object = Nothing ) As

OleDbDataReader

Dim rd As OleDbDataReader

Dim cmd As New OleDbCommand

cmd = me.GetCommand()

If Not (arrParams Is Nothing ) Then

For nIndex As Integer = 0 To (arrParams.Length - 1)

cmd Parameters AddWithValue (arrParams(nIndex),

arrValues(nIndex)) Next

End If

rd = cmd.ExecuteReader()

Return rd ‘cmd.ExecuteReader()

End Function

Trang 6

Windows Form programming with VB.Net 2005.

Lập trình hướng đối tượng là gì?

¾Trong thế giới thực, đối tượng là thực thể tồn tại như

con người, xe, máy tính, v.v…

¾Trong ngôn ngữ lập trình, đối tượng có thể là màn hình,

mouse, các control v.v…

¾Lập trình hướng đối tượng là kiểu lập trình nhằm vào

sự tương tác giữa các đối tượng

¾Một đối tượng có các đặc điểm sau:

- Những thuộc tính: xác định các đặc điểm của đối tượng

- Những phương thức:x/định các chức năng của đối tượng

- Các sự kiện phát sinh khi thay đổi thuộc tính, thực hiện

một phương thức hay bị đối tượng khác tác động vào

Lập trình hướng đối tượng

¾ Abstraction: Tính trừu tượng

¾ Encapsulation: Tính bao bọc (đóng gói)

¾ Inheritance: Tính kế thừa

¾ Polymorphism: Tính đa hình

Đặc điểm trong Lập trình hướng đối tượng:

Trang 7

Windows Form programming with VB.Net 2005.

Trong thế giới thực tồn tại các đối tượng có cùng các

thuộc tính cần quản lý như: Nhân viên, sinh viên, hàng

hóa… MaSV HoTen NgaySinh

Ví dụ: A001 Lê Văn A 1/1/1979

A002 TrầnVăn B 1/6/1979

Từ những đối tượng có các thuộc tính giống nhau, ta trừu

tượng hóa thành một lớp đối tượng

Ví dụ: từ hai đối tượng trên ta trừu tượng hóa thành lớp

(class) SinhVien có các thuộc tính:

MaSV

HoTen

NgaySinh

Abstraction: Tính trừu tượng

¾ Có thể gọi các phương thức của các đối

tượng để thực hiện mà không quan tâm bên

trong các phương thức này có các lệnh xử

lý nào

¾ Chỉ quan tâm đến dữ liệu đầu vào và kết

quả trả về của phương thức

¾ Khi ta chỉnh sửa lại các xử lý trong

phương thức mà không chỉnh sửa dữ liệu

vào và kết quả trả về thì không cần chỉnh

sửa ở nơi gọi

Encapsulation: Tính bao bọc

Trang 8

Windows Form programming with VB.Net 2005.

¾ Là khả năng cho phép ta xây dựng một lớp

mới dựa trên các định nghĩa của một lớp đã có

¾ Lớp đã có gọi là lớp Cha, lớp mới phát sinh

gọi là lớp Con

¾ Lớp con kế thừa tất cả các thành phần của lớp

Cha, có thể mở rộng chức năng các thành

phần kế thừa cũng như bổ sung thêm các

thành phần mới.

Inheritance: Tính kế thừa

™Kết nối trễ:

¾Ta có thể gián giá trị một đối tượng của lớp cha

bằng một đối tượng thuộc lớp con

¾Khi gọi một phương thức của đối tượng thuộc lớp

cha, tùy thời điểm gọi, đối tượng này được gán là

đối tượng thuộc lớp con nào thì phương thức của

lớp con đó được gọi.

™ Nạp chồng: Là khả năng một lớp có nhiều phương

thức cùng tên nhưng khác các tham số về số lượng,

kiểu dữ liệu

™ Ghi đè: là khả năng lớp con định nghĩa lại các

phương thức của lớp cha

Trang 9

Windows Form programming with VB.Net 2005.

Tạo mới một lớp: menu Project -> Add Class ->

Nhập tên lớp (Hoặc chuột phải tên Project ….)

Public Class <tên Class>

End Class

Ta có thể tự định nghĩa một lớp với cú pháp:

<Từ khóa của lớp> Class <Tên lớp>

<Các khai báo>

End Class

Lập trình hướng đối tượng trong VB.NET

[các Namspace của VB hay của người sử dụng ]

[Namespace { name | name.name } ]

Public Class <tên Class>

[ Inherits <tên Class cha> ]

[ Khai báo các biến hay thuộc tính ]

[ Các phương thức (hàm hay thủ tục) ]

End Class

[End Namespace]

Cấu trúc của một Class

Trang 10

Windows Form programming with VB.Net 2005.

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports Microsoft.VisualBasic

Namespace CSLD.KetNoi

Public Class DataLayers

Private Con As SqlConnection

Private strConnect As String

Public Sub New()

strConnect = "Data Source=(local);Initial Catalog=Menu;

Persist Security Info=True;User ID=sa;Password=sa"

Public Function GetConnection() As SqlConnection

Dim objCon As SqlConnection objCon = New SqlConnection(strConnect) Return objCon

End Function ‘ kết húc phương thức lấy kết nối

Ví dụ class CSDL:

¾.NetFrameWork cung cấp hơn 5000 đối tượng, để dễ

dàng quan lý và sử dụng, các đối tượng này được đưa vào

các nhóm tùy theo loại, các nhóm này có một tên gọi là

Namespase

¾Để sử dụng các đối tượng thuộc namespase nào ta

phải tham chiếu đến bằng lệnh:

Ví dụ: Imports System.Data.OleDb

¾Chú ý

• Mỗi lệnh Imports chỉ được sử dụng với một không

gian tên.

• Mỗi Module có thể có nhiều dòng Imports

¾Các lệnh Imports phải được đặt trước tất cả các khai

báo, kể cả lệnh khai báo Module hoặc Class

Imports không gian tên (Namespace) :

Trang 11

Windows Form programming with VB.Net 2005.

Public: Các thực thể khai báo với từ khóa nàycó

thể sử dụng ở mọi nơi.

Private: Cho biết thực thể khai báo chỉ được sử

dụng trong phạm vi khai báo.

Protected: Cho biết thực thể khai báo chỉ được sử

dụng trong phạmvi Class và Sub Class (lớp và lớp con).

Friend: Cho biết th t th ực thể khai báochỉ đượcsử

dụng trong phạm vi Project Nếu không

có từ khóa, Class mặcn hiên là khai báo Friend.

Từ khóa của lớp:

Public Class <tên Class con>

Inherits <tên Class cha>

'Khai báo các phương thức cho lớp đối tượng

[<từ khóa>] Sub <tên thủ tục> ([<các tham số>])

End Sub

' Hoặc

[<từ khóa>] Function <tên hàm> ([<các tham số>]) _

as <Kiểu trả về>

Return <giá trị>

End Function

End Class

Khai báo một lớp con kế thừa từ lớp cha :

Trang 12

Windows Form programming with VB.Net 2005.

Public: Phương thức được gọi ở mọi nơi.

Private: P.thức chỉ được gọi trong phạm vi của Class.

Protected: P thức chỉ được gọi trong phạm vi của

Class đó và các class con (Subclass) Friend: P thức chỉ được gọi trong phạm vi của Project.

Overloads: chỉ khai báo cho phương thức thuộc lớp

con, Cho biết P thức Nạp chồng một hay nhiều P

thức có cùng tên với phương thức trong lớp cha

Overrides: Cho biết P thức ghi đè một phương thức

cùng tên của lớp cha Số lượng tham số, kiểu dữ liệu

của tham số cũng như kiểu giá trị trả về phải khớp

với của lớp cha.

Từ khóa của phương thức:

9Là thủ tục được khai báo với từ khóa Public và luôn

có tên New

cú pháp:

Public Sub New [(Các tham số)]

<các xử lý>

End Sub

9Trong một lớp ta có thể có nhiều phương thức khởi

tạo với các tham số khác nhau

™Khai báo thuộc tính:

9Thuộc tính là thành phần lưu giữ các tính chất, đặc

điểm của đối tượng.

9Ứng với mỗi thuộc tính, chúng ta cần khai báo một

biến Private tương ứng để lưu giữ giá trị.

Phương thức khởi tạo (Constractor):

Trang 13

Windows Form programming with VB.Net 2005.

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ử v mẫu

Public Sub New(ByVal t As Integer, ByVal m As Integer)

Tu = t

Mau = m

End Sub

End Class

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

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

Property Thuoctinh() As <Kiểudữ liệu>

' Truy xuất giá trị của thuộc tính tức truy xuất đến

giá trị của biến

Get

Return mthuoctinh End Get

' Gán trị cho thuộc tính tức gán trị cho biến

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

mthuoctinh = Value End Set

End Property

Truy cập thuộc tính ta dùng cấu trúc Get - Set:

Trang 14

Windows Form programming with VB.Net 2005.

Public Class CHocSinh

Private intMaSo As Integer

Private strHoTen As String

Private bGioiTinh As Boolean

Property MaSo() As Integer

Get

Return intMaSo End Get

Set(ByVal MaSV As Integer)

intMaSo = MaSV End Set

End Property

Vd: khai báo thuộc tính

Property HoTen() As Integer

Get

Return strHoTen End Get

Set(ByVal sHoTen As Integer)

strHoTen = sHoTen End Set

End Property

Trang 15

Windows Form programming with VB.Net 2005.

Property GioiTinh() As Integer

Get

Return bGioiTinh End Get

Set(ByVal Phai As Boolaen)

bGioiTinh = Phai End Set

End Property

End Class ' Kết thúc class CHocSinh

™ Me: được dùng khi chúng ta chỉ rõ muốn dùng các

thành phần của chính thể hiện Class nơi viết lệnh.

Ví dụ:

Public Class Con_nguoi

Private ten as String

Public Sub Lam_viec()

Dim ten as String

' biến cụcbộ của Sub được sử dụng

ten = "Hùng"

' biến cấp Class được dùng

Me.ten = "Hùng "

End Sub

End Class

Từ khóa Me

Trang 16

Windows Form programming with VB.Net 2005.

™Mybase: được dùng trong Class kế thừa, khi muốn dùng các

phương thức của Class Cha (class cơ sở); VD:

Public Class Xe

Public sub Chay()

<Các lệnh>

End Sub

End class ' hết Class Xe

Public Class Xe_Hoi

Inherits Xe

Public sub Chay()

<Các lệnh chạy của Xe hơi>

MyBase.Chay() ' chạy của class Xe

End Sub

End Class ' hết Class Xe_Hoi

Từ khóa Mybase

™MyClass: được dùng để gọi các thể hiện hay phương thức

của Class hiện hành; VD:

Class TaiKhoan

Sub New()

MyClass.RutTien(100)

End Sub

Overridable Sub RutTien(ByVal amount As Integer)

[Các xử lý rút tiền]

End Sub

End Class

Từ khóa MyClass

Trang 17

Windows Form programming with VB.Net 2005.

Try

[ tryStatements ]

[ Exit Try ]

[ Catch [ exception [ As type ] ] [ When expression]

[ Exit Try ] ]

[ Catch ]

[ Finally

End Try

Bắt lỗi trong lập trình:

Try

[Các câu lệnh cần bắt lỗi]

Catch ex As [ Exception | ApplicationException ]

[Các thông báo lỗi ]

End Try

Public Function GetConnection() As SqlConnection

Try

Dim objCon As New SqlConnection(strConnect)

Return objCon

Catch ex As Exception

MsgBox (ex.Message)

End Try

End Function

Bắt lỗi đơn giản:

Trang 18

Windows Form programming with VB.Net 2005.

1 On Error Resume Next

Khi có lỗi bỏ CT qua dòng lỗi và sang dòng mới

2 On Error GoTo LabelName

Khi có lỗi chương trình sẽ bỏ qua tất cả các dòng

sau dòng lệnh trên và nhảy tới nhãn ( LabelName: )

đã được chỉ định sau đó VD:

Public Function PhanSo(ByVal tu As Integer, ByVal

mau As Integer) As Double

On Error GoTo Loi

Return a / b

Loi:

MsgBox(Err.Description)

End Function

Bắt lỗi bằng On Error: (có 2 cách)

- Hầu hết các control trong VB.Net đều có các thuộc

tính (Properties) dùng cho việc thiết kết giao diện,

nhưng chúng ta có thể thực hiện chúng trong lúc

chạy chương trình (viết code thay vì design)

- Chúng ta phải nắm bắt đặc điểm, chức năng của

từng thuộc tính (Properties) của một control cụ thể

như: ComboBox, TextBox, Button, ListBox,

MenuStrip, ToolStrip….

- Tương tự mỗi một Control đều có các sự kiện

(Event) chung và riêng biệt theo từng control của nó

(Đề nghị xem lại lý thuyết từ bài giảng buổi 2, 3, và 4 và

xem các thuộc tính chung và riêng của từng control)

Lập trình thuộc tính (Property) và tự kiện (Eevnt)

Trang 19

Windows Form programming with VB.Net 2005.

Cách thức bắt Sự kiện: (tại giao diện code)

Chứa các đối tượng

cần viết sự kiện Chứa các sự cần viết code kiện

Chọn đối tượng trước, sau đó chọn sự kiện (Đối tượng ở

đây thường là các Name của các Control)

Cách thức lập trình Sự kiện:

™Sau khi bắt sự kiện của các control thường xuất hiện

các tham số mặc định là Sender và e và Hanhle

System.Object , ByVal e As System.EventArgs )

<Các lệnh xữ lý>

End Sub

¾Sender: là tham số truyền chính đối tượng của

control mà ta cần xử lý vào trong phần viết code

¾e: là tham số truyền chính đối sự kiện (event ) của

control mà ta cần viết vào

¾Theo sau từ Hanhle là chính sự kiện (event) cần xử lý

Ngày đăng: 19/08/2015, 01:57

TỪ KHÓA LIÊN QUAN

w