Home Giáo Trình OOP CHƯƠNG 2 - LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - GIÁO TRÌNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP) - ĐẠI HỌC TÂY ĐÔ March 07, 2023 >Click vào ĐÂY để tải vềKey: Chương 2 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • Lập trình thông thường. • Lập trình hướng đối tượng. • Unified Modeling Language - UML. Lập trình thông thường • Lập trình tuyến tính – Tư duy theo lối tuần tự, đơn giản. – Đơn luồng và các công việc được thực hiện tuần – Tồn tại trong modul nhỏ của phương pháp lập – Không giải quyết được các yêu cầu phức tạp. Lập trình thông thường (tt) Cấu trúc dữ liệu + Giải thuật = Chương trình – Cấu trúc dữ liệu: cách tổ chức dữ liệu, mô tả bài toán dưới dạng ngôn ngữ lập trình. – Giải thuật: một quy trình để thực hiện một công Lập trình thông thường (tt) • Lập trình cấu trúc (tt) – Phân chia chương trình chính thành các chương trình con cho phù hợp với yêu cầu, chức năng và mục đích của mỗi bài toán – Giải thuật luôn phụ thuộc chặt chẽ vào cấu trúc Lập trình hướng đối tượng • Một số khái niệm cơ bản • Lập trình hướng đối tượng Object Oriented Programming – OOP • Các đặc điểm của OOP Một số khái niệm cơ bản • Đối tượng (Object) – Trong thế giới thực: • đối tượng là một thực thể (entity) cụ thể mà thông thường ta có thể sờ, nhìn thấy hay cảm nhận được. • Dùng để mô tả 1 người, sự vật hay khái niệm. • Đối tượng là cái mà ứng dụng muốn đề cập đến. • Trong hệ thống hướng đối tượng, mọi thứ đều là đối Một số khái niệm cơ bản (tt) • Đối tượng trong thế giới thực Trạng thái: • màu • hãng sản xuất • model • giá • ... Một số khái niệm cơ bản (tt) • Đối tượng trong thế giới thực (tt) – Mọi đối tượng đều có trạng thái (state) và hành Một số khái niệm cơ bản (tt) • Đối tượng trong lập trình – Thuộc tính, đặc tính, dữ liệu (attribute, • Trình bày, mô tả các đặc điểm của đối tượng. – Phương thức, ứng xử, hàm (method, behavior, function): • Liên quan đến những thứ đối tượng làm. • Tác động lên dữ liệu của đối tượng. Một số khái niệm cơ bản (tt) Một số khái niệm cơ bản (tt) Một số khái niệm cơ bản (tt) • Thể hiện (instance) – Thuộc tính được xác định giá trị cụ thể. – Đối tượng cụ thể gọi là một thể hiện. Đối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính bởi các phương thức liên quan. Một số khái niệm cơ bản (tt) – Là mẫu (prototype) của các đối tượng cùng – Là khuôn để đổ ra các đối tượng. – Định nghĩa các thuộc tính và phương thức chung cho các đối tượng có cùng loại. VD: Lớp XeDap là thiết kế chung cho các đối tượng xe mini, xe đòn, xe đầm, xe đua, xe leo Một số khái niệm cơ bản (tt) – Lớp tạo ra đối tượng: bằng cách gán giá trị cụ thể cho các thuộc tính. • Lớp được tạo ra khi biên dịch • Đối tượng tạo ra khi thực thi chương trình. Đối tượng là một thể hiện (instance) của 1 lớp Ông NVA Bà TTB Ông LVC Một số khái niệm cơ bản (tt) • Truyền thông báo – Thông báo (message): là 1 lời yêu cầu 1 hoạt – Thông báo bao gồm: • Đối tượng nhận thông điệp. • Hoạt động (tên của phương thức thực hiện). • Chi tiết thực hiện (giá trị các tham số). – Truyền thông báo: kích hoạt hàm cùng tên trên 1 đối tượng để yêu cầu thông tin. Ông NVA Lập trình hướng đối tượng • Một số khái niệm cơ bản Lập trình hướng đối tượng (Object Oriented Programming – OOP) • Các đặc điểm của OOP Lập trình hướng đối tượng (OOP) Thuộc tính + Hàm = Đối tượng Các hoạt động, thao tác của đối tượng Phân tích bài toán thành nhiều đối tượng. Quan tâm đến dữ liệu hơn thủ tục. Dữ liệu được bảo vệ (che giấu) và không thể truy xuất từ bên ngoài đối tượng. Lập trình hướng đối tượng (tt) Dữ liệu Hàm Đối tượng 3 Đối tượng 2 Lập trình hướng đối tượng (tt) • Sự trừu tượng hóa (abstraction) Lập trình hướng đối tượng (tt) • Sự trừu tượng hóa (abstraction) – Là bước tiến hóa tiếp theo từ lập trình cấu trúc. – Chỉ quan tâm đến những đặc điểm cần thiết (phớt lờ đi những chi tiết) tùy vào ngữ cảnh: VD: Phân tích thông tin của 1 người: - Trong ngữ cảnh làm việc trong trường. - Trong ngữ cảnh học tại trường? NhanVien Các đặc điểm của OOP • Là đặc điểm chủ yếu của OOP. • Che giấu việc thực thi chi tiết của 1 đối • Ngăn sự tác động từ đối tượng khác đến Tính bao gói (tt) – Thể hiện sự kết hợp chặc chẽ giữa thuộc tính – Định nghĩa lớp: là việc đóng gói nhiều thành – Xác định và giới hạn các đường truy cập đến Tính bao gói (tt) – Các thuộc tính truy cập: – Dùng chung (public): có quyền được truy xuất từ bất kỳ vị trí nào. – Dùng riêng (private): chỉ truy xuất được từ bên trong lớp (trong các phương thức của lớp đó). – Được bảo vệ (protected): chỉ truy xuất được từ bên trong lớp và các lớp thừa kế từ nó. Các đặc điểm của OOP • Tính thừa kế (inheritance) – Nhóm các đặc tính chung lại với nhau. – Sử dụng lại (kế thừa) các đặc trưng chung (thuộc tính + phương thức) của 1 lớp cho • Chia sẻ và sử dụng lại những lớp đã có: – Tận dụng lại các thuộc tính chung. – Tận dụng lại các thao tác tương tự. • Thiết kế lớp gọn nhẹ, đơn giản hơn. Các đặc điểm của OOP – Chú ý: tránh thiết kế sai về mặt ý nghĩa. VD: Lớp XeHơi thừa kế từ lớp BánhXe là SAI. – Lớp con phải chính là lớp cha, ngoài ra còn phải có thêm những đặc trưng riêng của nó: • Thêm hàm hoặc thêm thuộc tính • Tái định nghĩa hàm của lớp cha, đổi kiểu thuộc Con người – Tên – Giới tính Các đặc điểm của OOP – Lớp con sẽ có tất cả các thành phần của lớp cha nhưng chỉ được quyền truy xuất thành phần mà lớp cha cho phép (public + – Lớp cha không thể truy xuất được thành phần Các đặc điểm của OOP – Các thành phần của lớp con sẽ che đi các thành phần trùng tên trong lớp cha. • Khi truy xuất thành phần trùng tên đó sẽ truy xuất thành phần của lớp con. • Muốn truy xuất thành phần của lớp cha, phải chỉ – Trong C++: :: – Trong Java: super. Các đặc điểm của OOP – Thừa kế đơn: thừa kế từ 1 lớp – Thừa kế bội: thừa kế từ 2 lớp trở lên. • Tận dụng được nhiều thành phần có sẵn. • Dễ gây ra xung đột, cạnh tranh. Các đặc điểm của OOP Các đặc điểm của OOP • Ảo hóa (virtualization) – Kể tên trong lớp cha một ứng xử chung (hàm ảo – virtual, abstract) cho tập hợp các lớp – Khi nhận yêu cầu, tùy vào đối tượng thuộc lớp nào sẽ có ứng xử riêng (thực thi hàm tương ứng của lớp đó). Các đặc điểm của OOP 1. “Vẽ”: cho tập hợp các đối tượng hình học (điểm, đường thẳng, hình tròn, hình vuông, ...) 2. “Kêu”: cho tập hợp các con vật (chó, mèo, gà, 3. “Về nhà”: cho tập hợp các học sinh (đi bộ, đi xe đạp, đi xe gắn máy, đi xe buýt, ...) Các đặc điểm của OOP • Không nhất thiết phải cần định nghĩa ở lớp cha. • Phải được định nghĩa lại trong lớp con. • Chỉ dùng khai báo các hàm ảo bên trong. • Không được dùng để tạo ra đối tượng. Các đặc điểm của OOP • Tính đa hình (polymorphism) – Các đối tượng khác nhau khi nhận chung 1 yêu cầu vẫn có thể có những ứng xử khác nhau. – Kỹ thuật sử dụng: hàm ảo Điểm Đường Thẳng Hình Tròn Hình Vuông “Vẽ” Các đặc điểm của OOP – Các hành động cùng tên thực thi trên cùng 1 đối tượng vẫn có thể thực hiện khác nhau (có kết quả khác nhau) tùy thuộc vào ngữ cảnh. – Kỹ thuật sử dụng: tái định nghĩa hàm • Khác tham số (số lượng, thứ tự, kiểu) Tự tham khảo UML - Unified Modeling Language • Giới thiệu về UML • Các loại biểu đồ trong UML Giới thiệu UML – Tạm dịch là ngôn ngữ mô hình hóa thống nhất. – Ra đời vào năm 1997 và hiện nay đang được sử dụng rất – Bao gồm một hệ thống các ký hiệu đồ họa, biểu đồ (sơ đồ) thống nhất dùng để thiết kế các hệ thống thông tin (IS) theo hướng đối tượng. – Được sử dụng cho các giai đoạn phân tích, thiết kế, triển khai và kiểm thử phần mềm. – Các CaseTool (Rational Rose, System Architect, Argo UML, Visual Paradigm for UML, Umbrello...) hỗ trợ UML trong việc phát sinh chương trình tự động cho các ngôn Các loại biểu đồ trong UML – Use Cases Diagram (biểu đồ tình huống sử – Class Diagram (biểu đồ lớp) – Sequence Diagram (biểu đồ trình tự) – Collaboration Diagram (biểu đồ cộng tác) – State Diagram (biểu đồ trạng thái) – Component Diagram (biểu đồ thành phần) – Deployment Diagram (biểu đồ triển khai) Sơ đồ lớp (Class Diagram) Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp (Association) Sơ đồ lớp (Class Diagram) • Quan hệ kết hợp (Association) Sơ đồ lớp (Class Diagram) Sơ đồ lớp (Class Diagram) • Quan hệ tập hợp (Aggregation) Sơ đồ lớp (Class Diagram) • Quan hệ tổng hợp (Composition) Aggregation đặc biệt trong đó thành hoặc hủy bỏ từ những Sơ đồ lớp (Class Diagram) • Thừa kế (inheritance)
Post a Comment