Microsoft PowerPoint LapTrinh1 26 3 XOAved Autosaved pptx KỸ THUẬT LẬP TRÌNH Chương 6 Lập trình hướng đối tượng 277 Lập trình hướng đối tượng C++ 278 Tổng quan 279 Lập trình cấu trúc • Lập trình cấu trúc (1960s) – Phân chia vấn đề lớn thành các vấn đề con độc lập, từ đó tạo thành thủ tục và hàm – Trọng tâm của lập trình truyền thống dựa trên các chi tiết của việc thực hiện – Phương pháp viết chương trình chặt chẽ – Rõ ràng, dễ thử nghiệm và sửa lỗi, dễ thay đổi – Khi chương trình lớn hơn kh.
KỸ THUẬT LẬP TRÌNH Chương Lập trình hướng đối tượng 277 Lập trình hướng đối tượng C++ 278 Tổng quan 279 Lập trình cấu trúc • Lập trình cấu trúc (1960s) – Phân chia vấn đề lớn thành vấn đề độc lập, từ tạo thành thủ tục hàm – Trọng tâm lập trình truyền thống: dựa chi tiết việc thực – Phương pháp viết chương trình chặt chẽ – Rõ ràng, dễ thử nghiệm sửa lỗi, dễ thay đổi – Khi chương trình lớn khó quản lý – Dữ liệu đóng vai trị quan trọng • Khi thêm liệu kiểu mới, phải thay đổi tất công việc hàm liên quan đến liệu • Khơng thể phân chia phần cần che dấu thơng tin chương trình 280 Các phương pháp lập trình Lập trình tuyến tính Thời gian đầu Lập trình có cấu trúc 1960 – 1970 Lập trình hướng đối tượng 1980 281 (1) Lập trình tuyến tính • Chương trình dãy lệnh • Lập trình viết lệnh dãy lệnh • Khơng mang tính thiết kế • Tiêu biểu ngơn ngữ Basic, Fortran 282 (1) Lập trình tuyến tính: Đặc điểm • Chương trình đơn giản, số dịng lệnh • Thực trình tự từ đầu đến cuối • Khơng có cấu trúc • Dùng lệnh “goto/ gosub” để nhảy đến vị trí chương trình 283 (2) Lập trình có cấu trúc • Chương trình hệ thống thủ tục/ hàm Mỗi thủ tục/ hàm dãy lệnh • Lập trình xây dựng thủ tục/ hàm • Kết hệ thống cấu trúc mối quan hệ hàm/ thủ tục • Tiêu biểu ngơn ngữ Pascal, C 284 (2) Lập trình có cấu trúc • Khái niệm trừu tượng hóa (abstraction) theo chức năng: Làm gì, khơng quan tâm chi tiết bên • Phân chia công việc thành chức đơn giản gọi lập trình đơn thể (module) 285 (2) Lập trình có cấu trúc: Đặc điểm Ưu điểm • Đơn giản hóa q trình thiết kế cài đặt • Dễ đọc chương trình, hiểu chi tiết tốn • Các chương trình tương đối độc lập, dễ phân cơng cho nhóm 286 #include using namespace std; Hàm ảo // lớp trừu tượng class Shape { protected: float l; public: void getData() { cin >> l; } // hàm ảo virtual float calculateArea() = 0; }; class Square : public Shape { public: float calculateArea() { return l*l; } }; class Circle : public Shape { public: float calculateArea() { return 3.14*l*l; } }; 472 int main() { Square s; Circle c; cout