Bài giảng cung cấp cho người học các kiến thức: Lập trình hướng đối tượng trong VB.NET, các đặc điểm lập trình hướng đối tượng, thực hiện các đặc điểm lập trình hướng đối tượng trong VB.Net, khai báo các thành viên,... Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên đang theo học môn dùng làm tài liệu học tập và nghiên cứu. Mời các bạn cùng tham khảo chi tiết nội dung tài liệu.
CHƯƠNG 5: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG TRONG VB.NET Phan Trọng Tiến BM Công nghệ phần mềm Khoa Công nghệ thơng tin, VNUA Email: phantien84@gmail.com Website: http://timoday.edu.vn Nội dung Các đặc điểm lập trình hướng đối tượng I. 1. 2. 3. 4. Thực đặc điểm lập trình hướng đối tượng VB.Net Khai báo thành viên Class II. III. 1. 2. 3. 4. IV. Tính trừu tượng (Abstraction) Tính đóng gói (Encapsulation) Tính thừa kế (Inheritance) Tính đa hình (Polymorphism) Thủ tục khởi tạo(Constructors) Thủ tục khởi hủy(Destructors) Phương thức(Methods) Trường Thuộc tính(Fields Properties) Khai báo Namespaces I Các đặc điểm lập trình hướng đối tượng 1. Tính trừu tượng (Abstraction) 2. Tính đóng gói (Encapsulation) 3. Tính thừa kế (Inheritance) 4. Tính đa hình (Polymorphism) So sánh class and object q Class khuân mẫu thiết kế mà định nghĩa thuộc tính phương thức đối tượng q Object chạy class, sử dụng nhớ có hạn chế thời gian Tính trừu tượng - Khi bạn mua tủ lạnh -> Quan tâm tới kích thước, độ bền đặc điểm nó, khơng quan tâm tới máy móc làm -> gọi trừu tượng - VB.Net cung cấp tính trừu tượng qua class objects - Một class định nghĩa thuộc tính cách cư xử giống đối tượng - Một object class Tính trừu tượng q Mỗi đối tượng có đặc điểm thuộc tính -> gọi thuộc tính (property) đối tượng, thực hành động -> gọi phương thức (method) q VB.Net cho phép bạn có khả tạo thuộc tính phương thức cho đối tượng tạo class q Tính trừu tượng để giảm độ phức tạp đối tượng, thuộc tính phương thức cần thiết cho đối tượng q Tính trừu tượng cho phép tổng quát hóa đối tượng kiểu liệu Tính đóng gói (Encapsulation) q Được hiểu việc ẩn thơng tin Nó ẩn chi tiết khơng cần thiết đối tượng q Ví dụ: Khi bạn bật tủ lạnh ->chức start bắt đầu bạn nhìn thấy tủ hoạt động q Tính đóng gói cách thi hành tính trừu tượng Tính đóng gói(Encapsulation) q Tính đóng gói ẩn việc thi hành class người sử dụng Hay nói cách khác, hiển thị thuộc tính phương thức đối tượng Tính thừa kế q Một class thừa kế từ class tồn Lớp thừa kế gọi lớp (subclass) lớp class thừa kế gọi lớp sở (base class) q Tất lớp VB.Net xuất phát từ lớp Object q Lớp thừa kế thuộc tính phương thức từ lớp sở q Cũng thêm thuộc tính phương thức cho lớp Bạn chồng phương thức lớp sở Tính thừa kế q Tính thừa kế cho phép bạn tạo phân cấp đối tượng q Ví dụ: phân cấp class Contructors(tiếp) q Tất class VB.Net xuất phát từ class Object Vì tạo class, bạn cần gọi Contructor class Object Để làm việc bạn thêm câu lệnh MyBase.New() vào dòng Contructor class bạn Public Class MyNewClass Public Sub New() MyBase.New() 'Code for Initializing objects and variables End Sub 'Other class members End Class Contructors(tiếp) q Contructor mang đối số Public class Employer Public Sub New(Optional ByVal iempcode As Integer = 0) ‘code initiation here End Sub ‘code here End Class Bạn tạo đối tượng Employer: Dim Emp1 As New Employee(1001) Hoặc Dim Emp2 As Employee = New Employee(1001) q Contructor tùy chọn Destructors (Thủ tục khởi hủy) q VB.Net cung cấp thủ tục khởi hủy Sub Finalize q Thủ tục khởi hủy thực ngược lại với hàm khởi tạo q Thủ tục khởi hủy giải phóng nhớ tài nguyên sử dụng đối tượng q Thủ tục Sub Finalize phương thức Protected Ví dụ Protected Overrides Sub Finalize() MyBase.Finalize() 'Add code here End Sub q Từ khóa Overrides sử dụng Thủ tục Sub Finalize() kế thừa từ lớp Object Destructors q Thủ tục Sub Finalize() khơng gọi chạy chương trình, Net framework gọi thủ tục đối tượng kết thúc để giải phóng nhớ tài nguyên đối tượng sử dụng q .Net Framework tự động thu thập rác -> Bạn khơng cần thêm cơng việc giải phóng nhớ tài nguyên q .Net Framework cung cấp giao diện IDisposable giúp bạn quản lý tài nguyên Destructors q IDisposable cung cấp phương thức Dispose Không giống thủ tục Sub Finalize(), bạn gọi phương thức Dispose Bạn thêm code phương thức Dispose để giải phóng tài ngun cơng việc đóng kết nối tới đa q Thủ tục Sub Finalize() đảm bảo rác dọn dẹp phương thưc Dispose không gọi Methods q Bao gồm thủ tục Sub Function khai báo class q VB.Net bao gồm thủ tuc Sub, Function, Property q Thủ tục Sub không trả giá trị Câu lệnh Sub End Sub Khi thủ tục Sub gọi, tất câu lệnh thủ tục thực gặp câu lệnh End Sub, Exit Sub Return Methods q Thủ tục Function trả giá trị gọi Dùng câu lệnh Function End Function để định nghĩa thủ tục Function Thủ tục Function thực thi câu lệnh phía gặp câu lệnh End Function, Exit Function Return q Hai thủ tục Function Sub mang đối số hằng, biến, biểu thức q Bạn chồng phương thức VB.Net Fields and Properties q Fields biến khai báo class mà truy cập từ class khác q Ví dụ: Public Class MyClass1 Public MyField As Integer 'Declaring a field 'Other declarations and code End Class Dim MyObject As New MyClass1() MyObject.MyField = Properties q Properties định nghĩa thuộc tính đối tượng q Cú pháp tạo Property: Public Property NameProperty() As DataType Get Return PropertyValue 'Where PropertyValue is the property's value End Get Set(ByVal value As DataType) PropertyValue = value 'Where PropertyValue is the new value to be assigned End Set End Property Property q Mặc định Property có hai thuộc tính đọc ghi VB.Net định nghĩa thuộc tính đọc ghi q Thuộc tính đọc dùng từ khóa ReadOnly q Thuộc tính ghi dùng từ khóa WriteOnly q Các từ đặt trước từ khóa AcessModifier IV Khai báo Namespaces q Namspaces sử dụng để tổ chức đối tượng định nghĩa assemby q Namspace cho phép bạn tổ chức phân cấp đối tượng Cấu trúc phân cấp việc nhóm đối tượng tương tự nhau, để dễ truy cập q Mặc định, tên Project dùng làm namespace Khai báo Namespaces q Nếu bạn click chuột phải lên tên project Solution Explorer chọn Properties bạn xem namespace project Khai báo Namespaces q Bạn tạo Namespace riêng bạn cách dùng câu lệnh: Namespace and End Namespace Namespace MyNamespace Public Class MyOwnClass1 'Code for the MyOwnClass1 End Class Public Class MyOwnClass2 'Code for the MyOwnClass2 End Class End Namespace Khai báo Namespaces q Các namespace lồng Namespace GroceryStore Namespace Edible Public Class Vegetables 'Code for the class End Class Public Class Drinks 'Code for the class End Class End Namespace Namespace Inedible Public Class Cosmetics 'Code for the class End Class Public Class Toiletries 'Code for the classx` End Class End Namespace End Namespace q Bạn dùng từ câu lệnh Imports để truy cập vào class namespaces ... dung Các đặc điểm lập trình hướng đối tượng I. 1. 2. 3. 4. Thực đặc điểm lập trình hướng đối tượng VB.Net Khai báo thành viên Class II. III. 1. 2. 3. 4. IV. Tính trừu tượng (Abstraction)... -> gọi trừu tượng -? ?? VB.Net cung cấp tính trừu tượng qua class objects -? ?? Một class định nghĩa thuộc tính cách cư xử giống đối tượng -? ?? Một object class Tính trừu tượng q Mỗi đối tượng có đặc... khởi dựng) -? ?? -? ?? -? ?? -? ?? Được dùng để khởi tạo đối tượng VB.Net, Thủ tục Sub New thực Contructor Thủ tục Sub New thực đối tượng class đươc tạo, bạn thực cơng việc cần thiết trước dùng đối tượng Ví