1 Lập trình tuyến tính: Đặc điểm Chương trình đơn giản, số dòng lệnh ít Thực hiện trình tự từ đầu đến cuối Không có cấu trúc Dùng các lệnh “goto/ gosub” để nhảy đến một vị trí nào đó tr
Trang 1Chương 1 Giới thiệu
TRẦN MINH THÁI
Email: minhthai@itc.edu.vn
Website: www.minhthai.edu.vn
Cập nhật: 05 tháng 01 năm 2015
Lập trình Hướng đối tượng
( O bject O riented P rogramming)
Trang 2Tài liệu tham khảo
Trần Minh Thái, Bài giảng & bài tập Lập trình hướng đối tượng trên Web site: www.minhthai.edu.vn
Scott Robert Ladd, C++ kỹ thuật và ứng dụng (Nguyễn Hùng biên dịch)
Trần Văn Lăng, Lập trình hướng đối tượng với C++
Stroustrup, Bjarne, The C++ Programming Language, Reading, MA: Addison-Wesley (1993)
Bruce Eckel, Thinking in C++ 2nd edition, Vol.1&2
Dietel & Dietel C++ How to Program, 3rd edition
Trang 3Nội dung học phần
Chương 1 Giới thiệu lập trình hướng đối tượng (3 tiết)
Chương 2 Giới thiệu ngôn ngữ C++ (6 tiết)
Chương 3 Lớp và đối tượng (9 tiết)
Chương 4 Đa năng hoá toán tử (6 tiết)
Chương 5 Kế thừa đơn và đa kế thừa (9 tiết)
Chương 6 Đa hình (6 tiết)
Chương 7 Phân tích, thiết kế và hiện thực chương trình theo hướng đối tượng (6 tiết)
Trang 6Phương pháp lập trình?
C++/C#/Java/v.v… là NNLT để viết chương trìnhPPLT là hệ thống hướng dẫn các giai đoạn cần thiết, cấu trúc của một chương trình
PPLT là các cách tiếp cận giúp cho quá trình cài đặt hiệu quả hơn
Trang 81960 – 1970
1980 Thời gian đầu
Trang 9(1) Lập trình tuyến tính
Không mang tính thiết kế
Tiêu biểu là ngôn ngữ Basic, Fortran
Chương trình là một dãy các lệnh
Lập trình là viết các lệnh trong dãy lệnh
Trang 10(1) Lập trình tuyến tính: Đặc điểm
Chương trình đơn giản, số dòng lệnh ít
Thực hiện trình tự từ đầu đến cuối
Không có cấu trúc
Dùng các lệnh “goto/ gosub” để nhảy đến một vị
trí nào đó trong chương trình
Trang 11(2) Lập trình có cấu trúc
Chương trình là một hệ thống các thủ tục/ hàm Mỗi thủ tục/ hàm là một dãy các lệnh
Trang 12(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 được gì, không quan tâm chi tiết bên trong
Phân chia công việc thành các chức năng đơn giản hơn gọi là lập trình đơn thể (module)
Trang 13(2) Lập trình có cấu trúc: Đặc điểm
Ưu điểm
Đơn giản hóa quá trình thiết kế và cài đặt
Dễ đọc chương trình, hiểu chi tiết bài toán
Các chương trình con tương đối độc lập, dễ phân công cho từng nhóm
Trang 14Hàm và dữ liệu không có quan hệ với nhau
Hàm không hạn chế truy nhập tới các biến toàn cục
Trang 15Phần xử lý nằm rải rác và phải hiểu rõ cấu trúc dữ liệu
Khó bảo trì chương trình
Trang 17Mục tiêu
• Loại bỏ những thiếu sót của tiếp cận theo thủ tục
• Tiếp cận theo hướng trừu tượng hoá (abstraction)
• Dữ liệu được xem là phần trung tâm và được bảo vệ
• Hàm gắn kết với dữ liệu
(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
Trang 19• Duy trì và sửa đổi mã nguồn dễ dàng
• Cung cấp framework tốt với các thư viện mã nguồn
(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
Trang 206.20
Sự trừu tượng hóa (Abstraction)?
• Trừu tượng hóa
• Giao diện – Cài đặt
Trang 21Phương thức
Trang 22tượng Lớp đối tượng Kiểu dữ liệu cấu trúcCác thông tin được quan tâm
về 1 đối tượng Thuộc tính Thành phần thuộc tính của kiểu cấu
trúc Các khả năng của đối tượng Phương thức Các phương thức
Phân công giữa các đối tượng Yêu cầu Gọi thực hiện
phương thức
Trang 23Đối tượng (Object)?
Trang 26thuộc tính thể hiện Một đối tượng cụ thể được gọi là một thể hiện.
Trang 27Lớp (class)?
Nhiều đối tượng cùng loại lớp
Nhiều đối tượng cùng loại chia sẻ những đặc điểm chung
Trang 28Lớp (class)?
Một lớp là một thiết kế (blueprint) hay mẫu
(prototype) cho các đối tượng cùng kiểu
VD: lớp XeDap là một thiết kế chung cho nhiều
đối tượng xe đạp được tạo ra
Lớp định nghĩa các thuộc tính và các phương thức chung cho tất cả các đối tượng của cùng một loại nào đó
Trang 29Lớp (class)?
Một đối tượng là một thể hiện cụ thể của một lớp
VD: mỗi đối tượng xe đạp là một thể hiện của lớp XeDap
Mỗi thể hiện có thể có những thuộc tính thể hiện khác nhau
VD: một xe đạp có thể đang ở bánh răng thứ 5/ một xe khác có thể là đang ở bánh răng thứ 3
Trang 31Thuộc tính & Phương thức của lớp
• Thuộc tính (attribute) là dữ liệu trình bày các đặc điểm về một đối tượng
• Phương thức (method) có liên quan tới những việc mà đối tượng có thể làm Một phương thức đáp ứng một chức năng tác động lên dữ liệu của đối tượng (thuộc tính)
Trang 32Thông điệp & Truyền thông điệp
• Thông điệp (message) là một yêu cầu một hoạt động
• Các tham số mà phương thức cần
• Truyền thông điệp: một đối tượng gọi một hay nhiều phương thức của đối tượng khác để yêu cầu thông tin
Trang 33Tính đóng gói (Encapsulation)
Che giấu việc thực thi chi tiết của một đối tượng
Trang 34Ẩn thông tin (Information Hiding)
Thuộc tính được lưu trữ hay phương thức được cài đặt như thế nào được che giấu khỏi các đối tượng khác
Trang 35Tính thừa kế (Inheritance)
Animals
Trang 366.36
Tính thừa kế (Inheritance)
• Cho phép các lớp được định nghĩa kế thừa từ các lớp khác
• VD: lớp xe đạp leo núi và xe đạp đua là những lớp con (subclass) của lớp xe đạp
• Thừa kế nghĩa là các phương thức và các thuộc tính được định nghĩa
trong một lớp có thể được thừa kế hoặc được sử dụng lại bởi lớp khác
Trang 39Các bước thiết kế đối tượng
Bước 1: Xây dựng sơ đồ đối tượng
Trang 40Q&A