Tổng Quan Về
Lập Trình Hướng Đối Tượng
GVHD: Huỳnh Lê Tấn Tài
Lớp: 07TH1D
Nhóm: 3
Tổng Quan Về
Lập Trình Hướng Đối Tượng
1. Lập trình cấu trúc.
Khái quát về lập trình cấu trúc.
Ưu điểm lập trình cấu trúc.
Nhược điểm lập trình cấu trúc.
2. Lập trình hướng đối tượng.
Khái niệm Lập Trình Hướng Đối Tượng.
Đổi tượng là gì?
Lớp.
Sự đóng gói (Encapsulation).
Tính kế thừa (Inheritance).
Tính đa hình (Polymorphism).
Ưu điểm.
Nhược điểm.
Tương
21 trang |
Chia sẻ: huong20 | Ngày: 07/01/2022 | Lượt xem: 415 | Lượt tải: 0
Tóm tắt tài liệu Bài thuyết trình Tổng quan về lập trình hướng đối tượng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
lai.
Một số ngơn ngữ sử dụng phương pháp lập trình hướng đối tượng.
3. Ứng dụng OOP.
4. Tài liệu tham khảo.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 2
Lập Trình Cấu Trúc
1. Sơ lượt về lập trình cấu trúc:
Chương trình = cấu trúc dữ liệu + giải thuật
• Chương trình được chia nhỏ thành chương trình
con được đặt chung với nhau để xây dựng nên
một ứng dụng.
• Các chương trình con:
• Độc lập với nhau và cĩ dữ liệu riêng
• Trao đổi qua: tham số và biến tồn cục
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 3
Lập Trình Cấu Trúc
2. Ưu điểm lập trình cấu trúc:
Việc chia nhỏ một chương trình lớn thành các chương trình con
giúp cho lập trình viên dễ nhận biết và quản lí chương trình tốt hơn.
3. Nhược điểm trong lập trình cấu trúc:
Khơng hổ trợ mạnh việc sử dụng lại mã nguồn.
Khơng phù hợp với các phần mềm lớn.
Nhiều hàm truy nhập, sử dụng dữ liệu chung. Dữ liêu trong hệ
thống được chuyển động từ hàm này sang hàm khác nên khĩ kiểm
sốt dữ liệu.
Tập trung vào cơng việc cần thực hiện (thuật tốn).
Chương trình lớn được chia thành các hàm nhỏ hơn nhưng nếu
khơng thống nhất về thơng tin dẫn đến hậu quả lớn.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 4
Khái niệm Lập Trình Hướng Đối Tượng
Lập trình cấu trúc dẫn đến khái niệm trừu tượng hĩa:
Khơng quan tâm đến các chi tiết khơng quan trọng bên
trong.
Khơng quan tâm việc thực hiện của chương trình.
Chỉ quan tâm đến kết quả.
Khái niệm:
Lập trình hướng đối tượng được xây dựng trên nền
tảng của khái niệm lập trình cĩ cấu trúc và sự trừu
tượng hĩa dữ liệu.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 5
Khái niệm Lập Trình Hướng Đối Tượng
Là phương pháp lập trình:
Mơ tả chính xác các đối tượng trong thế giới.
Lấy đối tượng làm nền tảng xây dựng thuật tốn.
Thiết kế xoay quanh dữ liệu của hệ thống.
Chương trình được chia thành các lớp đối tượng.
Dữ liệu được đĩng gĩi, che dấu và bảo vệ.
Đối tượng làm việc với nhau qua thơng báo.
Chương trình được thiết kết theo cách từ dưới lên
(bottom-up) và từ trên xuống (top – down).
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 6
Lập Trình Hướng Đối Tượng
1. Đối tượng là gì?
Đối tượng = dữ liệu + phương thức
• Là khái niệm trừu tượng phản ánh các thực thể trong thế giới thực
• Cĩ thể là một thực thể vật lý.
• Cĩ thể là một khái niệm trừu tượng.
• Một đối tượng là sự đĩng gĩi 2 thành phần:
• Trạng thái (state) dữ liệu hay thuộc tính (attribute): đĩ là các đặc
điểm của đối tượng.
• Các ứng xử (behavior) hay hành vi, thao tác, phương thức: đĩ là một
hành động mà đối tượng cĩ thể thực hiện.
• Cĩ hai loại đối tượng: đối tượng trừu tượng và đối tượng thực.
• Được định nghĩa là sự thể hiện của một lớp (sẽ biết ở phần sau).
• Chính là các thực thể trong hệ thống hướng đối tượng (sẽ biết ở phần
sau).
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 7
Lập Trình Hướng Đối Tượng
Ví dụ 1:
Một con người là một đối tượng
Họ, tên, chiều cao, cân nănglà thuộc tính của tất cả con
người.
Hành vi của con người là ngồi, đứng, đi, chạy, nhảy
Ví dụ 2:
Một sinh viên trừu tượng gồm các thuộc tính:
MSSV, HỌ TÊN, NGÀY SINH, QUÊ QUÁN
Một sinh viên thực:
070042T, Võ Hồng Bảo, 6/6/1989, TPHCM
8
Lập Trình Hướng Đối Tượng
2. Lớp (class):
Tập hợp các đối tượng cĩ cùng thuộc tính và hành vi.
Định nghĩa:
class
{
Private:
Protected:
Public:
};
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 9
Lập Trình Hướng Đối Tượng
3. Sự đĩng gĩi (Encapsulation ):
Khái niệm:
Là cơ chế ràng buộc dữ liệu và các thao tác trên dữ liệu
thành thể thống nhất.(thể thống nhất là đối tượng)
Đĩng gĩi gồm:
Bao gĩi: người dùng giao tiếp với hệ thống qua giao diện
Che dấu: ngăn chặn các thao tác khơng được phép từ bên
ngồi
Ưu điểm:
Quản lý sự thay đổi
Bảo vệ dữ liệu
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 10
Lập Trình Hướng Đối Tượng
4. Tính kế thừa (Inheritance).
Khái niệm
Khả năng cho phép xây dựng lớp mới được thừa hưởng một số
hoặc tất cả thuộc tính cùng với cách hoạt động của lớp đã cĩ.
Khi đĩ lớp mới (lớp dẫn xuất) cĩ thể sử dụng dữ liệu và phương
thức của các lớp cơ sở (lớp ban đầu).
Kế thừa tạo ra mơ hình phân cấp giữa các lớp.
Cĩ ba từ khĩa dẫn xuất là private, protected và public qui định
quy định tính chất của sự kế thừa.
Cĩ hai loại thừa kế: đa thừa kế và đơn thừa kế.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 11
Lập Trình Hướng Đối Tượng
Ví dụ: Person
Weight
Height
inheritance Sex
Walk()
Student Sit()
ID
Firt nam inheritance
Last name Gradstudent
Graduation
Write() Under grad
Display() Major
Under
Year graduted
Write()
Tổng quan về lập trình hướng đối tượng Display()
Lớp :07TH1D 12
Lập Trình Hướng Đối Tượng
5. Tính đa hình (Polymorphism).
Đa hình là khái niệm luơn đi kèm với kế thừa. Do tính kế
thừa, một lớp cĩ thể sử dụng lại các phương thức của lớp khác.
Tuy nhiên, nếu cần thiết, lớp dẫn xuất cũng cĩ thể định nghĩa
lại một số phương thức của lớp cơ sở. Đĩ là sự nạp chồng
phương thức trong kế thừa. Nhờ sự nạp chồng phương thức
này, ta chỉ cần gọi tên phương thức bị nạp chồng từ đối tượng
mà khơng cần quan tâm đĩ là đối tượng của lớp nào. Chương
trình sẽ tự động kiểm tra xem đối tượng là thuộc kiểu lớp cơ sở
hay thuộc lớp dẫn xuất, sau đĩ sẽ gọi phương thức tương ứng
với lớp đĩ. Đĩ là tính đa hình.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 13
Lập Trình Hướng Đối Tượng
Nĩi cách khác, đa hình là khả năng cho phép mơ tả và
sử dụng những phương thức cĩ tên giống nhau trong các
lớp khác nhau.
Đa hình là một quá trình áp dụng một giao diện cho hai hay nhiều
trường hợp tương tự nhau (nhưng khác biệt về mặt kỹ thuật), nó triển khai tư
tưởng "một giao diện cho nhiều phương thức" .
Đa hình làm cho mối quan hệ luận lý giữa các hoạt động tương tự nhau
được trở nên rõ ràng hơn, do đó nó giúp cho lập trình viên dễ dàng hơn
trong việc đọc hiểu và bảo trì chương trình.
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 14
Lập Trình Hướng Đối Tượng
Ví dụ:
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 15
Lập Trình Hướng Đối Tượng
5. Ưu điểm:
• Loại bỏ các đoạn mã lặp lại (nguyên lý thừa kế).
• Rút ngắn thời gian xây dựng hệ thống.
• Quản lý được độ phức tạp của chương trình, dự án phần mềm lớn.
• Dễ dàng mở rộng và nâng cấp
• Tạo ra các chương trình an tồn, bảo mật (nguyên lý che giấu).
• Tăng năng xuất và hiệu quả hơn
• Chương trình được thiết kế theo đúng qui trình (do nĩ được xây dựng
từ những đơn thể (đối tượng) trao đổi với nhau chứ khơng phải dựa vào
kinh nghiệm và kỹ thuật như trước).
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 16
Lập Trình Hướng Đối Tượng
6. Nhược điểm:
Thiếu tính động của object(tự thân object
khơng tự phát triển trước yêu cầu mới)
Tính đan lên nhau của các yêu cầu mà mỗi một
object phải gánh chịu
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 17
Lập Trình Hướng Đối Tượng
7. Một số ngơn ngữ sử dụng phương pháp lập trình hướng đối
tượng:
• Hầu hết các ngơn ngữ lập trình đều hỗ trợ OOP, cĩ thể chia thành 2 loại:
• Ngơn ngữ hỗ trợ hướng đối tượng:
• Eiffel, Clos, Loops, Flavors, Object Pascal, Object C, C++, Delphi,
Java
• Ngơn ngữ hướng đối tượng:
• SmallTalk, JAVA
• Một số ngơn ngữ OOP phổ biến hiện nay:
• Visual C++
• VB.NET, C#...
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 18
Ứng dụng OOP
Để phát triển phần mềm trong nhìêu lĩnh vực
khác nhau
Vd: hệ điều hành Windows
Lĩnh vực ứng dụng chính của kỹ thuật lập trình
hướng đối tượng bao gồm:
Hệ thống làm việc thời gian thực, csdl hướng
đối tượng, hệ siêu văn bản, multimedia, trí tuệ
nhân tạo, lập trình song song và mạng nơron
Tổng quan về lập trình hướng đối tượng
Lớp :07TH1D 19
Ví dụ
Tổng quan về lập trình hướng đối tượng Lớp :07TH1D 20
Tài liệu tham khảo
James P. Cohoon and Jack W.Davidson, C++ Program Design – An Introduction to
Programming and Object-Oriented Design, 2nd edition, WCB McGraw-Hill, 1999.
Robert Lafore, Object – Oriented Programming in C++, Fourth edition, SAMS, 2001.
Lê Đ. Hưng, Tạ T. Anh, Nguyễn H. Đức và Nguyễn T. Thuỷ, Lập trình hướng đối tượng
với C++, NXB Khoa học và Kỹ thuật, 2005.
Waite Group's Object-Oriented Programming in C++, Third Edition
(Publisher: Macmillan Computer Publishing)
Author(s): Robert Lafore
Giáo trình OOP
NGƠN NGỮ LẬP TRÌNH C++ tác giả PGS.TS. Trần Đình Quế - KS. Nguyễn Mạnh Hùng
C++ tác giả Phạm Văn Ất
Các địa chỉ web
1.
2.
3.
3.
4.
Tổng quan về lập trình hướng đối tượng Lớp :07TH1D 21
Các file đính kèm theo tài liệu này:
- bai_thuyet_trinh_tong_quan_ve_lap_trinh_huong_doi_tuong.pdf