Bài thuyết trình Tổng quan về lập trình hướng đối tượng nêu lên lập trình cấu trúc (khái quát, đặc điểm), lập trình hướng đối tượng (khái niệm,lớp, sự đóng góp, tính kế thừa, tính đa hình,...), ứng dụng OOP.
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: Tổng Quan Về Lập Trình Hướng Đối Tượng Lập trình cấu trúc Khái quát 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 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 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 lai Một số ngôn ngữ sử dụng phương pháp lập trình hướng đối tượng Ứng dụng OOP Tài liệu tham khảo Tổng quan lập trình hướng đối tượng Lớp :07TH1D Lập Trình Cấu Trúc Sơ lượt lập trình cấu trúc: Chương trình = cấu trúc liệu + giải thuật • Chương trình chia nhỏ thành chương trình đặt chung với để xây dựng nên ứng dụng • Các chương trình con: • Độc lập với có liệu riêng • Trao đổi qua: tham số biến toàn cục Tổng quan lập trình hướng đối tượng Lớp :07TH1D Lập Trình Cấu Trúc Ưu điểm lập trình cấu trúc: Việc chia nhỏ chương trình lớn thành chương trình giúp cho lập trình viên dễ nhận biết quản lí chương trình tốt Nhược điểm 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 phần mềm lớn Nhiều hàm truy nhập, sử dụng liệu chung Dữ liêu hệ thống chuyển động từ hàm sang hàm khác nên khó kiểm sốt liệu Tập trung vào cơng việc cần thực (thuật tốn) Chương trình lớn chia thành hàm nhỏ không thống thông tin dẫn đến hậu lớn Tổng quan lập trình hướng đối tượng Lớp :07TH1D 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 chi tiết không quan trọng bên Không quan tâm việc thực chương trình Chỉ quan tâm đến kết Khái niệm: Lập trình hướng đối tượng xây dựng tảng khái niệm lập trình có cấu trúc trừu tượng hóa liệu Tổng quan lập trình hướng đối tượng Lớp :07TH1D Khái niệm Lập Trình Hướng Đối Tượng Là phương pháp lập trình: Mơ tả xác đối tượng giới Lấy đối tượng làm tảng xây dựng thuật toán Thiết kế xoay quanh liệu hệ thống Chương trình chia thành lớp đối tượng Dữ liệu đóng gói, che dấu bảo vệ Đối tượng làm việc với qua thông báo Chương trình thiết kết theo cách từ lên (bottom-up) từ xuống (top – down) Tổng quan lập trình hướng đối tượng Lớp :07TH1D Lập Trình Hướng Đối Tượng • • • • • Đối tượng gì? Đối tượng = liệu + phương thức Là khái niệm trừu tượng phản ánh thực thể giới thực • Có thể thực thể vật lý • Có thể khái niệm trừu tượng Một đối tượng đóng gói thành phần: • Trạng thái (state) liệu hay thuộc tính (attribute): đặc điểm đối tượng • Các ứng xử (behavior) hay hành vi, thao tác, phương thức: hành động mà đối tượng thực Có hai loại đối tượng: đối tượng trừu tượng đối tượng thực Được định nghĩa thể lớp (sẽ biết phần sau) Chính thực thể hệ thống hướng đối tượng (sẽ biết phần sau) Tổng quan lập trình hướng đối tượng Lớp :07TH1D Lập Trình Hướng Đối Tượng Ví dụ 1: Một người đối tượng Họ, tên, chiều cao, cân năng…là thuộc tính tất người Hành vi người ngồi, đứng, đi, chạy, nhảy… Ví dụ 2: Một sinh viên trừu tượng gồm thuộc tính: MSSV, HỌ TÊN, NGÀY SINH, QUÊ QUÁN… Một sinh viên thực: 070042T, Võ Hoàng Bảo, 6/6/1989, TPHCM… Lập Trình Hướng Đối Tượng Lớp (class): Tập hợp đối tượng có thuộc tính hành vi Định nghĩa: class { Private: Protected: Public: }; Tổng quan lập trình hướng đối tượng Lớp :07TH1D Lập Trình Hướng Đối Tượng Sự đóng gói (Encapsulation ): Khái niệm: Là chế ràng buộc liệu thao tác liệu thành thể thống nhất.(thể thống đố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 thao tác khơng phép từ bên ngồi Ưu điểm: Quản lý thay đổi Bảo vệ liệu Tổng quan lập trình hướng đối tượng Lớp :07TH1D 10 Lập Trình Hướng Đối Tượng Tính kế thừa (Inheritance) Khái niệm Khả cho phép xây dựng lớp thừa hưởng số tất thuộc tính với cách hoạt động lớp có Khi lớp (lớp dẫn xuất) sử dụng liệu phương thức lớp sở (lớp ban đầu) Kế thừa tạo mơ hình phân cấp lớp Có ba từ khóa dẫn xuất private, protected public qui định quy định tính chất kế thừa Có hai loại thừa kế: đa thừa kế đơn thừa kế Tổng quan lập trình hướng đối tượng Lớp :07TH1D 11 Lập Trình Hướng Đối Tượng Ví dụ: inheritance Student ID Firt nam Last name Graduation Write() Display() Tổng quan lập trình hướng đối tượng Lớp :07TH1D Person Weight Height Sex Walk() Sit() inheritance Gradstudent Under grad Major Under Year graduted Write() Display() 12 Lập Trình Hướng Đối Tượng Tính đa hình (Polymorphism) Đa hình khái niệm ln kèm với kế thừa Do tính kế thừa, lớp sử dụng lại phương thức lớp khác Tuy nhiên, cần thiết, lớp dẫn xuất định nghĩa lại số phương thức lớp sở Đó nạp chồng phương thức kế thừa Nhờ nạp chồng phương thức này, ta 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 đối tượng lớp Chương trình tự động kiểm tra xem đối tượng thuộc kiểu lớp sở hay thuộc lớp dẫn xuất, sau gọi phương thức tương ứng với lớp Đó tính đa hình Tổng quan 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 khả cho phép mơ tả sử dụng phương thức có tên giống lớp khác Đa hình trình áp dụng giao diện cho hai hay nhiều trường hợp tương tự (nhưng khác biệt mặt kỹ thuật), 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ý hoạt động tương tự trở nên rõ ràng hơn, giúp cho lập trình viên dễ dàng việc đọc hiểu bảo trì chương trình Tổng quan 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 lập trình hướng đối tượng Lớp :07TH1D 15 Lập Trình Hướng Đối Tượng • • • • • • • Ưu điểm: Loại bỏ đ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ý độ phức tạp chương trình, dự án phần mềm lớn Dễ dàng mở rộng nâng cấp Tạo chương trình an toàn, bảo mật (nguyên lý che giấu) Tăng xuất hiệu Chương trình thiết kế theo qui trình (do xây dựng từ đơn thể (đối tượng) trao đổi với dựa vào kinh nghiệm kỹ thuật trước) Tổng quan lập trình hướng đối tượng Lớp :07TH1D 16 Lập Trình Hướng Đối Tượng Nhược điểm: Thiếu tính động 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 yêu cầu mà object phải gánh chịu Tổng quan lập trình hướng đối tượng Lớp :07TH1D 17 Lập Trình Hướng Đối Tượng 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 ngơn ngữ lập trình hỗ trợ OOP, chia thành 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 nay: • Visual C++ • VB.NET, C# Tổng quan 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 nhìêu lĩnh vực khác Vd: hệ điều hành Windows Lĩnh vực ứng dụng 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 mạng nơron… Tổng quan lập trình hướng đối tượng Lớp :07TH1D 19 Ví dụ Tổng quan 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 Nguyễn T Thuỷ, Lập trình hướng đối tượng với C++, NXB Khoa học 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 web http://www.angelfire.com/country/aldev0/cpphowto http://www.gnacademy.org/text/cc/Tutorial/tutorial.html http://sophia.dtp.fmph.uniba.sk/cpptut/tutorial.us.html http://www.brpreiss.com/books/opus4/html/book.html http://ebook.edu.vn Tổng quan lập trình hướng đối tượng Lớp :07TH1D 21 .. .Tổng Quan Về Lập Trình Hướng Đối Tượng Lập trình cấu trúc Khái quát 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 Lập trình hướng đối tượng Khái niệm Lập. .. lập trình có cấu trúc trừu tượng hóa liệu Tổng quan lập trình hướng đối tượng Lớp :07TH1D Khái niệm Lập Trình Hướng Đối Tượng Là phương pháp lập trình: Mơ tả xác đối tượng giới Lấy đối tượng. .. kế Tổng quan lập trình hướng đối tượng Lớp :07TH1D 11 Lập Trình Hướng Đối Tượng Ví dụ: inheritance Student ID Firt nam Last name Graduation Write() Display() Tổng quan lập trình hướng đối tượng