Tải bản đầy đủ (.pptx) (40 trang)

Bài giảng lập trình hướng đối tượng dùng c + + chương 1 tổng quan về lập trình hướng đối tượng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (5.49 MB, 40 trang )

Lập trình Hướng đối tượng
(Object Oriented Programming)

Chương 1. Giới thiệu
TRẦN MINH THÁI
Email:
Website: www.minhthai.edu.vn
Cập nhật: 05 tháng 01 năm 2015


Tài liệu tham khảo
#2

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


Nội dung học phần
#3

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)


Chương 1. Giới thiệu OOP
#4

Nội dung
1. Khái niệm về phương pháp lập trình
2. Tổng quan các phương pháp lập trình
3. Giới thiệu những đặc điểm và những vấn đề mới
trong phương pháp lập trình hướng đối tượng


Phương pháp lập trình (PPLT)?
#5

Xây dựng phần mềm bao gồm rất nhiều cơng đoạn:
phân tích & thiết kế, cài đặt, kiểm tra/thử nghiệm
và bảo trì
Cài đặt (programming/coding) chỉ là 1 phần trong
quá trình trên


Phương pháp lập trình?
#6


C++/C#/Java/v.v… là NNLT để viết chương trình
PPLT 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


Các yêu cầu chính của phần mềm
#7

Tính tái sử dụng (reusability)
Tính mở rộng (extensibility)
Tính mềm dẻo (flexibility)


Các phương pháp lập trình
#8

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



(1) Lập trình tuyến tính
#9

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
Khơng mang tính thiết kế
Tiêu biểu là ngôn ngữ Basic, Fortran


(1) Lập trình tuyến tính: Đặc điểm
#10

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.


(2) Lập trình có cấu trúc
#11

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
Lập trình là xây dựng các thủ tục/ hàm
Kết quả là hệ thống cấu trúc và mối quan hệ giữa

các hàm/ thủ tục
Tiêu biểu là ngôn ngữ Pascal, C


(2) Lập trình có cấu trúc
#12

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)


(2) Lập trình có cấu trúc: Đặc điểm
#13

Ưu điểm
Đơn giản hóa q trình thiết kế và cài đặt
Dễ đọc chương trình, hiểu chi tiết bài tốn
Các chương trình con tương đối độc lập, dễ phân
cơng cho từng nhóm


(2) Lập trình có cấu trúc: Đặc điểm
#14

Khuyết điểm
Khi thay đổi dữ liệu thì phải thực hiện các thay đổi ở
mọi đơn thể có tác động trên chúng

Hà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


(2) Lập trình có cấu trúc: Đặc điểm
#15

Khuyết điểm
Sai sót trong việc trao đổi thông tin giữa các thành viên
trong nhóm có thể mất nhiều thời gian để sửa chữa
chương trình
Phầ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


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
#16

Tư duy mới, tiếp cận theo hướng đối tượng để giải
các bài toán trên máy tính
Thiết kế và phát triển phần mềm dựa trên kiến trúc
lớp và đối tượng


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
#17

Mụ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)
#18

Mục tiêu
Phân tách bài toán thành nhiều đối tượng và yêu cầu
chúng thực hiện hành động của mình
Tăng cường khả năng sử dụng lại
Tiếp cận bottom-up


(3) Lập trình Hướng đối tượng
(Object-oriented Programming)
#19

Ưu điểm
Cung cấp một cấu trúc module rõ ràng: Giao diện
định nghĩa rõ ràng và chi tiết cài đặt ẩn
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


Sự trừu tượng hóa (Abstraction)?
#20


Trừu tượng hóa
 Giao diện – Cài đặt
 Cái gì – Thế nào
 Phân tích – Thiết kế
Các kỹ thuật trừu tượng
 Đóng gói (encapsulation)
 Ẩn thơng tin (information hiding)
 Thừa kế (inheritance)
 Đa hình (polymorphism)


Sự trừu tượng hố
#21

Thế giới thực

Trừu tượng hóa

Phần mềm

Thuộc tính

Thuộc
tính

Thực thể

Hành động


Phương
thức


Sự trừu tượng hố
#22

Thế giới thực

PPLT

Ngơn ngữ lập trình

Đới tượng trong thế giới thực

Đối tượng

Khái niệm chung về đối
tượng

Lớp đối tượng Kiểu dữ liệu cấu trúc

Cá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

Biến có kiểu cấu
trúc

Gọi thực hiện
phương thức


Đối tượng (Object)?
#23


Đối tượng trong thế giới thực
(Real Object)
#24

Thực thể cụ thể mà ta có thể sờ, nhìn thấy hay cảm
nhận được
Có trạng thái
(state) và
hành động
(behaviour)


Một đối tượng có tên gọi và chu trình sống: sinh ra, hoạt động và mất đi


Đối tượng Phần mềm
(Software Object)
#25

Dùng để biểu diễn các đối tượng thế giới thực
Trạng thái: thuộc tính
(attribute/ property)
Hành động: phương thức
(method)


×