Bài giảng cung cấp cho người học các kiến thức: Kế thừa Form và tạo các lớp cơ sở, kết hợp các form, tự tạo các lớp cơ sở, dẫn xuất một lớp mới,... 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 bài giảng.
Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Chương 17: Kế thừa Form tạo lớp sở oOo -Nội dung thảo luận: - Sử dụng Inheritance Picker để kết hợp form có vào dự án - Tự tạo lớp sở bạn với thuộc tính phương thức tùy biến - Dẫn xuất lớp từ lớp sở từ khóa kế thừa Inherits Trong phiên trước đây, VB chưa coi ngôn ngữ lập trình mạnh khơng có tính kế thừa để hồn thiện mơ hình lập trình hướng đối tượng VB.NET cung cấp đầy đủ khả kế thừa Bạn kế thừa form hay lớp sở để tạo lớp đối tượng Chú ý: - Kế thừa form môi trường VB.NET sử dụng đối tượng Inheritance Picker - Lớp người dùng chứa file - Các từ khóa Property Get, Property Set Property Let khơng cịn sử dụng - Có thể tạo lớp kế thừa lớp cha thơng qua từ khóa Inherits Kế thừa sử dụng lại form có INHERITANCE PICKER Kế thừa ta tận dụng lại có, ưu điểm form hay lớp cha Trong thiết kế form thực lớp form ta kế thừa từ lớp cha System.Windows.Forms.Form Việc kế thừa form ta có hai cách làm, bạn viết mã chương trình sau: Public Class Form1 : Inherits System.Windows.Forms.Form Cách thứ hai dựa vào công cụ Inheritance Picker để thực việc kế thừa thiết kế Bạn truy xuất công cụ nhờ việc chọn lệnh Project | Add New Item chọn mục Inherited Form danh sách mục Nhưng dự án cần Build trước việc kế thừa thực 1.1 Kế thừa form hộp thoại đơn giản Bây làm ví dụ MyFormInheritance để kế thừa form hộp thoại đơn giản sau đây: - Tạo Solution add vào dự án tên MyFormInhertiance thiết kế Form1 đơn giản với hai nút nhấn sau: Biên soạn: Phạm Đức Lập -1- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET - Chương 17: Kế thừa form tạo lớp sở Bạn tạo thủ tục Button1_Click nhập vào dòng mã: MsgBox("Bạn click nút OK") - Tương tự thủ tục Button2_Click với dòng mã: MsgBox("Bạn click vào nút Cancel") - Tiến hành Build Solution bạn kế thừa form chúng biên dịch File DLL hay EXE - Bây ta tạo form2 kế thừa form1 Bạn chọn Project | Add | New Item chọn mục Inherited Form danh sách: - Nhấn nút Add để hộp thoại Inheritance Picker hình: Biên soạn: Phạm Đức Lập -2- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET - Chương 17: Kế thừa form tạo lớp sở Hộp thoại liệt kê tất danh sách form có dự án hành Bạn tìm form khác đĩa cứng biên dịch cách nhấp vào nút Browse - Chọn Form1 nhấn nút OK Lúc form xuất với hai nút nhấn thuộc tính Text “Dialog Box” kế thừa từ form1 hình: 1.2 Tùy biến form kế thừa Bạn đặt thêm nút nhấn thứ ba nên form2, đặt thuộc tính Text “Click Me!” Tạo thủ tục Button3_Click với dòng mã: MsgBox("Đây Form kế thừa!") Biên soạn: Phạm Đức Lập -3- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Trở lại cửa sổ thiết kế form2 thử double click vào nút OK hay Cancel ta thấy chỉnh sửa thủ tục Điều nghĩa là, bạn chỉnh sửa thành phần kế thừa thêm thành phần vào Đặt lại form2 form khởi động theo cách học chương trước Chạy chương trình: Chương trình hồn thành kiểm thử Ấn F5 để chạy chương trình Ấn nút OK Cancel để xem hộp thoại thông báo Tự tạo lớp sở riêng Để biên dịch form2, Inheritance Picker tạo liên kết đến dự án form1 form Nội dung form sau (trong cửa sổ code editor form1.vb bạn khơng nhìn thấy khai báo Để xem bạn dùng trình soạn thảo Edit Plus mở file tương ứng Form2.Designer.vb): Partial Class Form2 Inherits MyFormInheritance.Form1 … Ngoài kế thừa VB.NET, tạo lớp riêng Lớp có thuộc tính, phương thức giống VB.NET Để tạo chọn Project | Add Class định nghĩa lớp cửa sổ Code Editor Bài tập MyPersonClass sau hướng dẫn cách tạo lớp sở Person yêu cầu người dùng nhập vào tên nhân viên, ngày sinh Thông tin lưu lớp đối tượng Ta tạo phương thức cho phép tính tuổi nhân viên Biên soạn: Phạm Đức Lập -4- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở 2.1 Xây dựng lớp Person Bạn đóng dự án hành lại Tạo solution add vào dự án tên MyPersonClass Thiết kế form hình: Form gồm nhãn Label1, nút nhấn Button1 (Hiển thị), hai textBox hình Tạo lớp Person cách chọn Project | Add Class (có thể R-Click vào dự án chọn Add Class dach sách) Thay tên lớp Person.vb Bây tạo lớp cách viết mã cho lớp Có ba bước chung để tạo lớp khai báo biến lớp, tạo thuộc tính, tạo phương thức Chúng ta tìm hiểu Khai báo biến lớp: Chúng ta khai báo hai biến chứa First Name Last Name sau khai báo Public Class Person sau: Private FName, LName As String Từ khóa Private cho biết biến dùng để truy xuất phạm vi khai báo Ở truy xuất lớp Person Tạo thuộc tính: Ta tạo thuộc tính FirstName cho lớp để trả First Name nhân viên Bạn gõ vào dòng phát biểu sau: Public Property FirstName() As String Ấn Enter, VS.NET tự tạo cấu trúc đầy đủ thuộc tính này: Biên soạn: Phạm Đức Lập -5- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Public Property FirstName() As String Get End Get Set(ByVal value As String) End Set End Property Các từ khóa Get trả giá trị cho thuộc tính người dùng muốn đọc Set đặt giá trị cho thuộc tính gán giá trị cho Thêm vào mã cài đặt đầy đủ cho thuộc tính sau: Public Property FirstName() As String Get Return FName End Get Set(ByVal value As String) FName = value End Set End Property Khi người đọc thơng tin từ thuộc tính đối tượng thuộc tính trả giá trị biến Fname, cịn gán giá trị gán giá trị biến Lname Value phần Set Trong thuộc tính phức tạp bạn cài thêm câu lệnh xử lý khối lệnh Get…End Get, Set…End Set Nhưng việc trả giá trị gán giá trị bắt buộc phải có Tương tự ta xây dựng thuộc tính LastName() sau: Public Property LastName() As String Get Return LName End Get Set(ByVal value As String) LName = value End Set End Property Tạo phương thức cho đối tượng: Bây tạo phương thức Tinhtuoi để tính số tuổi nhân viên dựa ngày sinh họ Bên khai báo thuộc tính LasName bạn khai báo hàm (hàm Function trả lại cho nơi gọi số tuổi nhân viên) sau: Public Function Tinhtuoi(ByVal NS As Date) As Integer Return Int(Now.Subtract(NS).Days / 365.25) End Function Từ khóa Public cho phép phương thức truy cập người dùng sử dụng lớp Person Hàm sử dụng hàm Subtract trừ ngày hành cho ngày sinh nhân viên chia cho 365.25 để tính số tuổi Vậy lớp Person định nghĩa xong Chúng ta sử dụng lớp form1 Biên soạn: Phạm Đức Lập -6- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở 2.2 Tạo đối tượng dựa lớp định nghĩa Trở lại cửa sổ thiết kế form1.vb Tạo thủ tục Button1_Click cách nhấp đôi vào nút nhấn “hiển thị” nhập vào đoạn mã sau: Dim nhanvien As New Person Dim NgaySinh As Date nhanvien.FirstName = TextBox1.Text nhanvien.LastName = TextBox2.Text NgaySinh = DateTimePicker1.Value.Date MsgBox("Nhân viên " & nhanvien.FirstName & " " & _ nhanvien.LastName _ & " " & nhanvien.Tinhtuoi(NgaySinh) & " tuổi") Trong đoạn mã trên, trước hết ta khai báo biến đối tượng nhanvien có kiểu Person Từ khóa New dùng để tạo vùng nhớ cấp phát đối tượng Person thật cho nhanvien Ta khai báo biến NgaySinh để chứa ngày tháng nhập vào Dữ liệu hai TextBox gán cho thuộc tính FirstName LastName Chạy chương trình: Bạn nhấn F5 để chạy chương trình Nhập vào tên đầy đủ hai ô textbox chọn ngày sinh phù hợp ấn nút hiển thị Kết quả: Kế thừa lớp tự tạo Ta kế thừa lớp tương tự kế thừa form Để kế thừa ta chọn Project | Add Class với từ khóa Inherits để tạo lớp kế thừa Ta thêm vào phương thức thuộc tính đồng thời giữ lại ưu điểm lớp cha Bài tập sau minh họa việc tạo thêm lớp kế thừa lớp Person ta vừa tạo Chúng ta tạo thêm lớp có tên kisu Biên soạn: Phạm Đức Lập -7- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Lớp kế thừa lớp Person, có hai thuộc tính Firstname LastName phương thức Tinhtuoi() có thêm phương thức BacTho lưu lại cấp bậc tay nghề kỹ sư Bạn add thêm class tên KiSu đặt câu khai báo lớp từ khóa Inherits sau: Public Class KiSu Inherits Person Như lớp KiSu kế thừa lớp Person Bạn bổ sung thêm mã cho lớp sau: Public Class KiSu Inherits Person Private CapBac As Short Public Property BacTho() As Short Get Return CapBac End Get Set(ByVal value As Short) CapBac = value End Set End Property End Class Bây sử dụng lớp Bạn trở lại cửa sổ Code Editor form1 mở thủ tục Button1_Click sửa sau: Dim nhanvien As New KiSu Dim NgaySinh As Date nhanvien.FirstName = TextBox1.Text nhanvien.LastName = TextBox2.Text NgaySinh = DateTimePicker1.Value.Date nhanvien.BacTho = InputBox("Bậc thợ nhân viên:") MsgBox("Nhân viên " & nhanvien.FirstName & " " & _ nhanvien.LastName _ & " " & nhanvien.Tinhtuoi(NgaySinh) & " tuổi." & _ vbCrLf & "Bậc thợ: " & nhanvien.BacTho) Trong đoạn mã cho biến nhanvien có kiểu KiSu để có thêm thuộc tính phương thức bên cạnh thuộc tính có sẵn lớp Person Chạy chương trình: Nhấn F5 để chạy chương trình Bạn nhập vào tên đầy đủ, số tuổi nhập vào cấp bậc thợ nhân viên để hiển thị sau: Biên soạn: Phạm Đức Lập -8- Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Tổng kết Bạn làm bảng tổng kết biết chương Bạn tìm hiểu thêm kế thừa ngôn ngữ khác C, C++, C# Biên soạn: Phạm Đức Lập -9- Add: cnt-44-dh, VIMARU ... cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở 2.2 Tạo đối tượng dựa lớp định nghĩa Trở lại cửa sổ thiết kế form1 .vb Tạo thủ tục Button1_Click cách nhấp đôi vào... tạo thêm lớp có tên kisu Biên soạn: Phạm Đức Lập -7 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở Lớp kế thừa lớp Person, có hai thuộc tính Firstname LastName... soạn: Phạm Đức Lập -4 - Add: cnt-44-dh, VIMARU Hướng dẫn lập trình VB.NET Chương 17: Kế thừa form tạo lớp sở 2.1 Xây dựng lớp Person Bạn đóng dự án hành lại Tạo solution add vào dự án tên MyPersonClass