Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
530,5 KB
Nội dung
CHƯƠNG 7: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP) Mục tiêu Giới thiệu kiến thức Lập trình hướng đối (HĐT) tượng; đặc điểm, đặc trưng lập trình HĐT Nội dung Lập trình có cấu trúc Lập trình HĐT Một số khái niệm Đặc điểm Lập trình HĐT Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 1/24 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình có cấu trúc: - Lập trình cấu trúc tổ chức chương trình thành chương trình (được gọi hàm C++) - Một chương trình cấu trúc gồm cấu trúc liệu (như biến, mảng, ghi) hàm Ngôn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 2/24 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình HĐT (OOP) - Lập trình hướng đối tượng lập trình có cấu trúc + trừu tượng hóa liệu - Có nghĩa chương trình tổ chức dạng cấu trúc Tuy nhiên, việc thiết kế chương trình xoay quanh liệu, lấy liệu làm trung tâm Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 3/24 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình HĐT (OOP) - Với lập trình cấu trúc túy, liệu khai báo riêng rẽ, tách rời với thao tác xử lý Do đó, việc xử lý liệu thường khơng thống chương trình xây dựng từ nhiều người dùng khác => Lập trình HĐT phương pháp phân tích thiết kế phần mềm dựa kiến trúc lớp đối tượng Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 4/24 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình HĐT (OOP) - Quá trình phát triển phương pháp lập trình - Lập trình tuyến tính - Lập trình có cấu trúc - Sự trừu tượng hóa liệu - Lập trình hướng đối tượng Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 5/24 7.1 Lập trình có cấu trúc Lập trình HĐT So sánh phương pháp lập trình: Lập trình cấu trúc Đối tượng Hàm Hàm Hàm Hướng đối tượng Các thao tác Dữ liệu Đối tượng Các thao tác Dữ liệu Ngơn ngữ lập trình C++ Đối tượng Các thao tác Dữ liệu Chương 7: Lập trình có cấu trúc Lập trình HĐT 6/24 7.2 Một số khái niệm - Trừu tượng hóa - Đối tượng - Thuộc tính phương thức - Lớp - Truyền thơng điệp Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 7/24 Sự trừu tượng hóa Trừu tượng hóa kỹ thuật trình bày đặc điểm cần thiết vấn đề mà khơng trình bày chi tiết cụ thể hay lời giải thích phức tạp vấn đề Ví dụ: Con người có đặc tính sau: - Tên - Tuổi - Địa - Chiều cao - Màu tóc … ⇒ Những chi tiết quan trọng phát triển - Ứng dụng khách hàng mua sắm? - Điều tra tội phạm? Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 8/24 Sự trừu tượng hóa - Trừu trượng hóa phân làm loại: - Trừu tượng hóa liệu (Data Abstraction): tiến trình xác định nhóm thuộc tính hành động liên quan đến thực thể đặc thù ứng dụng phát triển - Trừu tượng hóa chương trình (Program Abstraction): trừu tượng hóa liệu mà làm cho dịch vụ thay đổi theo liệu Ngôn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 9/24 Đối tượng Đối tượng (Object) thực thể phần mềm bao bọc thuộc tính phương thức liên quan - Các đối tượng chìa khóa để hiểu kỹ thuật hướng đối tượng - Đối tượng giới thực thực thể cụ thể có trạng thái (states) hành động (behaviour) Ví dụ: Đối tượng chó có trạng thái: tên, màu, giống, vui sướng … hành động: ăn, ngủ, sủa, vẫy tai, chạy, bệnh… => xác định trạng thái hành động đối tượng xe đạp? Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 10/24 Đối tượng - Đối tượng phần mềm dùng để biểu diễn đối tượng giới thực trạng thái gọi thuộc tính attribute (các biến) hành động gọi phương thức method (các hàm) JAVA Cịn C++ gọi liệu thành viên hàm thành viên Ví dụ: Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 11/24 Đối tượng Ví dụ: Một đối tượng phần mềm mơ cho hình chữ nhật có thuộc tính để xác định trạng thái hình chữ nhật chiều dài 10cm chiều rộng 6cm Và có phương thức: tính chu vi, diện tích - Trong lập trình OOP đối tượng cụ thể gọi thể (instance) Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 12/24 Thuộc tính Phương thức Thuộc tính (attribute) liệu trình bày đặc điểm đối tượng - Mọi đối tượng lớp phải có thuộc tính giá trị thuộc tính khác - Một thuộc tính đối tượng nhận giá trị khác thời điểm khác Ví dụ: đối tượng hình chữ nhật có thuộc tính chiều dài, chiều rộng nhận giá trị khác Và thời điểm khác giá trị chiều dài chiều rộng khác Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 13/24 Thuộc tính Phương thức Phương thức (method) cách đáp ứng chức tác động lên liệu đối tượng - Các phương thức xác định cách thức hoạt động đối tượng thực thi đối tượng cụ thể tạo Ví dụ: hoạt động chung lớp hình chữ nhật tính chu vi diện tích Nhưng đối tượng cụ thể thuộc lớp hình chữ nhật tạo phương thức thực thi Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 14/24 Lớp Lớp (class) thiết kế hay mẫu ban đầu định nghĩa thuộc tính phương thức chung cho tất đối tượng loại - Một đối tượng thể cụ thể lớp Ví dụ: Trong lớp hình chữ nhật có nhiều đối tượng hình chữ nhật với giá trị thuộc tính khác - Trong trường hợp thuộc tính hay phương thức lớp giống tất đối tượng gọi thuộc tính lớp phương thức lớp Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 15/24 Lớp - Thuộc tính lớp (class attribute) hạng mục liệu liên kết với lớp cụ thể mà không liên kết với thể lớp Nó định nghĩa bên định nghĩa lớp chi thể lớp - Phương thức lớp (class method) phương thức triệu gọi mà không tham khảo tới đối tượng Tất phương thức lớp ảnh hưởng đến tồn lớp khơng ảnh hưởng đến lớp riêng rẽ Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 16/24 Truyền thơng điệp - Một chương trình hay ứng dụng lớn thường chứa nhiều đối tượng khác Và chúng tương tác với cách gửi thông điệp Ví dụ: Đối tượng học sinh muốn đối tượng hình chữ nhật thực phương thức tính chu vi, diện tích đối tượng học sinh cần gửi thơng điệp tới đối tượng hình chữ nhật Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 17/24 Truyền thơng điệp Thơng điệp (message) lời yêu cầu hoạt động - Một thơng điệp gồm có: - Đối tượng nhận thơng điệp - Tên phương thức thực - Các tham số mà phương thức cần - Một thông điệp truyền đối tượng triệu gọi hay nhiều phương thức đối tượng khác để yêu cầu thơng tin Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 18/24 7.3 Đặc điểm lập trình HĐT - Tính đóng gói - Tính thừa kế - Tính đa hình Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 19/24 Tính đóng gói (Encapsulation) - Trong OOP thuộc tính trung tâm, hạt nhân đối tượng - Các phương thức bao quanh che giấu hạt nhân đối tượng từ đối tượng khác chương trình Việc gọi đóng gói - Đóng gói tiến trình che giấu việc thực thi chi tiết đối tượng; khái niệm trung tâm phương pháp lập trình hướng đối tượng, liệu thao tác xử lý qui định trước “đóng” thành “gói” thống nhất, riêng biệt với liệu khác tạo thành kiểu liệu với tên gọi lớp Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 20/24 Tính đóng gói (Encapsulation) - Các thao tác khai báo gói liệu xử lý liệu gói ngược lại liệu gói bị tác động, xử lý thao tác khai báo gói - Che giấu thông tin việc ẩn chi tiết thiết kế hay thi công từ đối tượng khác Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 21/24 Tính thừa kế (Inheritance) - Lập trình OOP cho phép lớp định nghĩa kế thừa từ lớp khác Ví dụ: Lớp xe đạp leo núi lớp xe đạp đua lớp (subclass) lớp xe đạp Lúc lớp xe đạp gọi lớp cha (superclass) Thừa kế nghĩa phương thức thuộc tính định nghĩa lớp thừa kế sử dụng lại lớp khác - Lớp cha lớp có phương thức hay thuộc tính thừa hưởng hay nhiều lớp khác Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 22/24 Tính thừa kế (Inheritance) - Lớp lớp thừa hưởng số đặc tính chung lớp cha thêm vào số đặc tính riêng khác - Các lớp thừa kế thuộc tính phương thức từ lớp cha - Các lớp định nghĩa lại phương thức thừa kế để xử lý thuộc tính riêng chúng Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 23/24 Tính đa hình (Polymorphism) - Đa hình nghĩa “nhiều hình thức”, phương thức tên thực khác đối tượng, lớp khác - Với đa hình, phương thức ứng dụng cho đối tượng thuộc lớp khác đưa đến kết khác Ví dụ: hai lớp Hình chữ nhật hình trịn có phương thức tính chu vi, diện tích Nhưng cách tính chu vi đối tượng hình chữ nhật hình trịn lại khác Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 24/24 ... hàm Ngôn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 2/24 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình HĐT (OOP) - Lập trình hướng đối tượng lập trình có cấu... trình hướng đối tượng Ngơn ngữ lập trình C++ Chương 7: Lập trình có cấu trúc Lập trình HĐT 5/24 7.1 Lập trình có cấu trúc Lập trình HĐT So sánh phương pháp lập trình: Lập trình cấu trúc Đối tượng. .. 7.1 Lập trình có cấu trúc Lập trình HĐT Phương pháp Lập trình HĐT (OOP) - Quá trình phát triển phương pháp lập trình - Lập trình tuyến tính - Lập trình có cấu trúc - Sự trừu tượng hóa liệu - Lập