Bài giảng Tin học đại cương: Chương 3 được biên soạn nhằm mục đích phục vụ cho việc giảng dạy. Nội dung bài giảng gồm: Các khái niệm cơ bản về mô hình hướng đối tượng, các đối tượng giao diện của VB 6.0, hiệu chỉnh thuộc tính của các đối tượng giao diện, tạo thủ tục xử lý sự kiện của các đối tượng giao diện.
MƠN TIN HỌC Chương TỔNG QT VỀ LẬP TRÌNH BẰNG VISUAL BASIC 3.1 Các khái niệm mơ hình hướng đối tượng 3.2 Các đối tượng giao diện VB 6.0 3.3 Hiệu chỉnh thuộc tính đối tượng giao diện 3.4 Tạo thủ tục xử lý kiện đối tượng giao diện Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 71 3.1 Các khái niệm mơ hình hướng đối tượng Hình vẽ sau tổng kết cấu trúc ứng dụng lập trình cấu trúc: Chương trình = cấu trúc liệu + giải thuật module (package) entry 'start' global data local data of module local data of function Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 72 Từ lập trình cấu trúc đến OOP Xét cấu trúc chương trình cổ điển slide trước, ta thấy có nhược điểm sau: Rất khó đảm bảo tính qn đắn liệu tồn cục lệnh hàm truy xuất chúng Nếu chương trình cần đồng thời nhiều 'instance' module chế lập trình cấu trúc khơng cho phép tạo tự động 'instance' Để khắc phục nhược điểm (và bổ sung nhiều ưu điểm khác), ta lập trình theo hướng đối tượng (OOP - Object Oriented Programming) chương trình tập đối tượng sống tương tác (xem slide kế tiếp) Visual Basic ngơn ngữ hỗ trợ việc lập trình theo hướng đối tượng, VB cịn mơi trường lập trình trực quan (visual) nên dễ dùng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 73 Cấu trúc ứng dụng OOP Chương trình = tập đối tượng tương tác đối tượng (object) entry local data of object local data of operation Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 74 Đối tượng (Object) Mơ hình đối tượng quan niệm chương trình bao gồm đối tượng sinh sống tương tác với Đối tượng bao gồm nhiều thành phần, thành phần thuộc loại: Thuộc tính (attribute): mang giá trị định thời điểm Tác vụ (operation): thực cơng việc Implementation (class) Interface (abstract type) Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 75 Kiểu trừu tượng (Abstract type) Abstract type (type) định nghĩa interface sử dụng đối tượng Ta dùng tên nhận dạng để đặt tên cho kiểu để nhận dạng Interface tập hợp 'entry' mà bên ngồi giao tiếp với đối tượng Ta dùng signature để định nghĩa 'entry' Signature gồm: Tên tác vụ (operation, function) Danh sách tham số hình thức, tham số đặc tả thuộc tính: tên, type chiều di chuyển (IN, OUT, INOUT) Đặc tả chức tác vụ (thường dạng thích) Ta dùng tên abstract type (chứ class) để đặc tả kiểu cho biến, thuộc tính, tham số hình thức User khơng cần quan tâm đến class (hiện thực cụ thể) đối tượng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 76 Class (Implementation) Ta dùng tên nhận dạng để đặt tên cho class để nhận dạng Class định nghĩa chi tiết thực đối tượng: Định nghĩa thuộc tính liệu, thuộc tính đặc tả thơng tin tên nhận dạng, kiểu liệu, tầm vực truy xuất, Kiểu thuộc tính type cổ điển (số nguyên, thực, ký tự, chuỗi ký tự, ) hay 'abstract type', trường hợp sau thuộc tính tham khảo đến đối tượng khác Trạng thái đối tượng tập giá trị thời điểm tương ứng tất thuộc tính đối tượng Trong thời gian tồn hoạt động, trạng tái đối tượng thay đổi ‘Coding' tác vụ (miêu tả giải thuật chi tiết hoạt động tác vụ) 'internal function' Định nghĩa tác vụ tạo (create) xóa (delete) đối tượng Định nghĩa tác vụ 'constructor' 'destructor' User không cần quan tâm đến class đối tượng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 77 Tính bao đóng (encapsulation) Bao đóng: che dấu chi tiết thực đối tượng, khơng cho bên ngồi thấy truy xuất ⇒ đảm bảo tính độc lập cao đối tượng, nghĩa độ phụ thuộc (hay tính ghép nối coupling đối tượng) thấp, nhờ dễ bảo trì, phát triển ứng dụng: Che dấu thuộc tính liệu: cần cho phép truy xuất thuộc tính từ bên ngoài, ta tạo tác vụ get/set tương ứng để giám sát việc truy xuất che dấu chi tiết thực bên Che dấu chi tiết thực tác vụ Che dấu 'internal function' thực chúng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 78 Tính thừa kế (inheritance) Viết ứng dụng OOP định nghĩa type/class đối tượng cấu thành ứng dụng Tính thừa kế cho phép giảm nhẹ cơng sức định nghĩa type/class: ta định nghĩa type/class khơng phải từ đầu mà cách kế thừa type/class có sẵn, ta định nghĩa thêm chi tiết mà thơi (thường ít) Đa thừa kế hay đơn thừa kế Mối quan hệ supertype/subtype superclass/subclass Có thể 'override' thực tác vụ class cha, kết override có tác dụng đối tượng class Đối tượng class đóng vai trị đối tượng cha ngược lại khơng Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 79 Tính bao gộp (aggregation) đối tượng chứa nhiều đối tượng khác nhờ mối quan hệ bao gộp cách đệ qui đối tượng Có góc nhìn tính bao gộp: ngữ nghĩa thực Góc nhìn ngữ nghĩa O1 O2 Góc nhìn thực O2 O4 O4 O1 O3 O5 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM O3 O5 Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 80 Thông điệp (Message) Thông điệp phép gọi tác vụ đối tượng từ tham khảo Thông điệp bao gồm phần: Tham khảo đến đối tượng đích Tên tác vụ muốn gọi Danh sách tham số thực cần truyền theo (hay nhận từ) tác vụ Ví dụ: aCircle.Draw (pWnd) Truy xuất thuộc tính interface: aCircle.Radius = 10 ≡ aCircle.SetRadius(10) r = aCircle.Radius ≡ r = aCircle.GetRadius() Thông điệp phương tiện giao tiếp (hay tương tác) đối tượng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 81 Hai thành phần ứng dụng Xem lại slide 15 miêu tả qui trình tổng quát việc dùng máy tính giải vấn đề đời, ta thấy ứng dụng gồm phần thành phần chính: Giao diện người dùng: phương tiện cho người dùng tương tác với chương trình để nhập/xuất liệu, để điều khiển/giám sát hoạt động chương trình Trong OOP, giao diện người dùng tập đối tượng giao diện form, form chứa nhiều đối tượng nhỏ menu, toolbar, button, textedit, listbox, treeview Giải thuật xử lý bên trong: thể method đối tượng giao diện đối tượng bên ứng dụng Mỗi method danh sách lệnh thực thi (cấu trúc điều khiển) để miêu tả giải thuật mà tác vụ tương ứng thực Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 82 Thiết kế trực quan đối tượng giao diện Định nghĩa đối tượng giao diện cách viết code tường minh cơng việc khó khăn tốn nhiều công sức, thời gian Để giảm nhẹ công sức định nghĩa đối tượng giao diện, mơi trường lập trình trực quan (visual) viết sẵn số đối tượng giao diện thường dùng cung cấp cơng cụ để người lập trình thiết kế trực quan giao diện ứng dụng cách tích hợp đối tượng giao diện có sẵn này: người lập trình đóng vai trị họa sĩ để vẽ/hiệu chỉnh kích thước, di chuyển vị trí phần tử giao diện cần cho ứng dụng Ngồi mơi trường trực quan cịn cho phép người lập trình tự tạo đối tượng giao diện (ActiveX Control) để dùng ứng dụng viết sau Qui trình viết ứng dụng theo chế gọi viết ứng dụng cách lắp ghép linh kiện phần mềm, giống việc lắp máy tính từ linh kiện phần cứng CPU, RAM, disk, keyboard, monitor, ⇒ dễ dàng nhanh chóng Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 83 3.2 Các đối tượng giao diện có VB Control buttons Window ≡ Form, Dialogbox Title bar Textbox Command Button Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 84 Các đối tượng giao diện có VB (tt) Label DriveListBox Combobox ≡ Textbox + ListBox DirListBox FileListBox ≅ ListBox Image ≅ Picture Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 85 Các đối tượng giao diện có VB (tt) Frame OptionButton Checkbox Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 86 Các đối tượng giao diện có VB (tt) MenuBar Toolbar CommandButton Pop-up Menu window chứa document ứng dụng StatusBar Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 87 Các tính chất chung đối tượng giao diện Đối tượng giao diện có tính chất giống đối tượng bình thường, ngồi chúng cịn có số đặc điểm riêng Đối tượng giao diện cấu thành từ loại thành phần: thuộc tính tác vụ Mỗi đối tượng giao diện chứa nhiều thuộc tính liên quan đến nhiều loại trạng thái khác nhau: Thuộc tính 'Name': thuộc tính đặc biệt, xác định tên nhận dạng đối tượng, giá trị thuộc tính trở thành biến tham khảo đến đối tượng, code ứng dụng dùng biến để truy xuất đối tượng Các thuộc tính xác định vị trí kích thước: Left, Top, Height, Width thuộc tính xác định tính chất hiển thị: Caption, Picture, BackColor, Các thuộc tính xác định hành vi: Enable, Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 88 3.3 Hiệu chỉnh thuộc tính đối tượng giao diện Khi tạo trực quan đối tượng giao diện, môi trường gán giá trị ban đầu cho thuộc tính, thường ta cần thay đổi vài thuộc tính đáp ứng yêu cầu riêng Có cách để hiệu chỉnh giá trị thuộc tính: Trực quan thơng qua cửa sổ thuộc tính đối tượng giao diện Lập trình truy xuất thuộc tính đối tượng giao diện Khoa Cơng nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 89 3.4 Sự kiện - Thủ tục xử lý kiện Mỗi đối tượng giao diện có nhiều tác vụ (operation), hầu hết chúng gọi thủ tục xử lý kiện chế gọi thủ tục chủ yếu trực tiếp từ người dùng ứng dụng thông qua tương tác trực tiếp với đối tượng, từ tạo kiện kích khởi thủ tục xử lý tương ứng chạy Thí dụ ta ấn chuột vào button tên "Command1", hệ thống tạo kiện "Click" để kích khởi thủ tục Command1_Click() chạy Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Mơn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 90 Cách tạo hàm xử lý kiện đối tượng Qui trình tổng quát việc tạo thủ tục xử lý cho kiện đối tượng: Chọn menu View.Code để hiển thị cửa sổ code Chọn tên đối tượng liên quan danh sách đối tượng Chọn kiện cần tạo thủ tục xử lý danh sách kiện, template thủ tục xử lý tạo tự động Sử dụng kiến thức giải thuật & cú pháp ngôn ngữ VB để viết code cho thủ tục xử lý Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 91 Tổng kết qui trình viết ứng dụng VB Trước hết phải nắm bắt yêu cầu phần mềm để xác định chức mà ứng dụng phải cung cấp cho người dùng Phân tích sơ lược chức tìm class phân tích cấu thành chức tương ứng Thiết kế chi tiết class phân tích: xác định thuộc tính tác vụ phác họa giải thuật tác vụ Hiện thực phần mềm VB gồm cơng việc chính: Thiết kế trực quan form giao diện người dùng: form chứa nhiều phần tử giao diện, phần tử giao diện thường có sẵn, khơng ta phải tạo thêm số đối tượng giao diện (ActiveX Control) Ứng với phần tử giao diện vừa tạo ra, nên thiết lập giá trị đầu cho thuộc tính "Name" vài thuộc tính cần thiết Tạo thủ tục xử lý kiện cho kiện cần thiết phần tử giao diện viết code cho thủ tục xử lý kiện vừa tạo Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 92 ... quan (visual) nên dễ dùng Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 73 Cấu trúc ứng dụng OOP Chương trình = tập đối tượng... thực Góc nhìn ngữ nghĩa O1 O2 Góc nhìn thực O2 O4 O4 O1 O3 O5 Khoa Công nghệ Thông tin Trường ĐH Bách Khoa Tp.HCM O3 O5 Môn: Tin học Chương 3: Tổng qt lập trình Visual Basic Slide 80 Thơng điệp... keyboard, monitor, ⇒ dễ dàng nhanh chóng Khoa Cơng nghệ Thơng tin Trường ĐH Bách Khoa Tp.HCM Môn: Tin học Chương 3: Tổng quát lập trình Visual Basic Slide 83 3.2 Các đối tượng giao diện có VB Control