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

Bài giảng Lập trình hướng đối tượng: Chương 1 - Trần Minh Thái (2016)

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.42 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: 08 tháng 06 năm 2016


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

Thuộc tính

Phần mềm

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

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

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


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)


6.25


×