Giáo trình lập trình hướng đối tượng

193 242 0
Giáo trình lập trình hướng đối tượng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

1 Lập trình hướng đối tượng TS H.Q.Thắng, TS C.T.Dũng B ộ môn công nghệ phần mềm Đại học bách khoa Hà Nội H.Q. Thắng - C.T. Dũng BM CNPM 2 Môn học: Lập trình hướng đối tượng  Giới thiệu về môn học  Đề cương chi tiết môn học  Tài liệu tham khảo môn học  Bài tập lớn môn học  Thi và đánh giá môn học 2 H.Q. Thắng - C.T. Dũng BM CNPM 3 Giới thiệu về môn học • Mục đích môn học: Môn học này được giới thi ệu cho sinh viên các kiến thức và kỹ thuật trong LTHDT. Sinh viên s ẽ tiếp cận với phương pháp luận, các kỹ năng, kỹ thuật trong thi ết kế và lập trình hướng đối tượng • Vị trí môn học: áp dụng cho sinh viên năm thứ 4 (học kỳ 7), CNTT. Trong môn học có sử dụng kiến thức của các môn học: Cấu trúc dữ liệu và giải thuật, hệ điều hành, lý thuyết ngôn ng ữ H.Q. Thắng - C.T. Dũng BM CNPM 4 Giới thiệu về môn học (tiếp)  Thời lượng môn học: 45 tiết lý thuyết được phân b ổ trong 12 tuần. Sẽ có các bài tập tu ần, sinh viên tự tham khảo tài liệu được giao để thực hiện bài tập lớn (đồ án môn h ọc) ngay từ tuần 2 của cuối học kỳ  Bài tập lớn môn (đồ án môn học): làm theo nhóm, có b ảo vệ làm theo nhóm 3 H.Q. Thắng - C.T. Dũng BM CNPM 5 Đề cương chi tiết môn học  Chương 1. Tổng quan về lập trình hướng đối tượng  Chương 2. Các kỹ thuật làm việc với h ằng, biến, xây dựng và sử dụng hàm trong LTHĐT  Chương 3. Các kỹ thuật cơ bản trong xây d ựng lớp  Chương 4. Kỹ thuật thừa kế, kết tập và đa hình trong LTHĐT H.Q. Thắng - C.T. Dũng BM CNPM 6 Đề cương chi tiết môn học  Chương 5. Ngôn ngữ mô hình hóa UML và s ử dụng trong LTHDT  Chương 6. Thiết kế khuôn mẫu  Chương 7. Các phép đo đánh giá phần m ềm hướng đối tượng 4 H.Q. Thắng - C.T. Dũng BM CNPM 7 Tài liệu tham khảo môn học  [1]. Peter Coad, Jill Nicola; Object-Oriented Programming  [2]. Harvey M. Deitel, Paul J. Deitel C++ How to Programing (5th Edition)  [3]. Harvey M. Deitel, Paul J. Deitel How to Java Programing (5th Edition)  [4]. Bruce Eckel - Thinking in C++ . Second Edition. MindView Inc., 2000. Có th ể tải về từ web site: www.bruceeckel.com  [5] Martin Fowler UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition H.Q. Thắng - C.T. Dũng BM CNPM 8 Bài tập lớn (đồ án môn học)  Đồ án môn học: Sinh viên được chia làm các nhóm, m ỗi nhóm chọn một cấu trúc d ữ liệu hoặc giải thuật tiêu biểu để xây d ựng phần mềm theo nguyên lý hướng đối tượng (công cụ tuỳ chọn).  Yêu cầu của đồ án môn học: các nhóm ti ến hành mô tả và đánh giá phần mềm hướng đối tượng theo các tiêu chí 5 H.Q. Thắng - C.T. Dũng BM CNPM 9 Đánh giá môn học  Cuối kỳ thi hết môn, thời gian 60-90 phút  Điểm đánh giá môn học:  Điểm kiểm tra điều kiện: 20%  Điểm thi: trọng số 40%  Điểm đồ án môn học: trọng số 40%  Điều kiện miễn thi: thực hiện tốt đồ án môn h ọc và có những nghiên cứu sâu về các lĩnh vực trong CNTT. Đồ án môn học th ực hiện đúng theo các quy định chuẩn c ủa môn học H.Q. Thắng - C.T. Dũng BM CNPM 10 Thảo luận  Các câu hỏi của sinh viên liên quan đến n ội dung môn học “Lập trình hướng đối tượng”  Các câu hỏi của sinh viên liên quan đến n ội dung của bài tập lớn và phương pháp th ực hiện và bảo vệ  Các câu hỏi của sinh viên liên quan đến n ội dung thi 6 H.Q. Thắng - C.T. Dũng BM CNPM 11 Chương 1. Các khái niệm cơ bản trong Lập trình hướng đối tượng (LTHDT) 1. Lịch sử phát triển của các ngôn ngữ lập trình 2. Đối tượng và các khái niệm liên quan 3. Khái ni ệm thực hiện ẩn (hidden implementation) trong LTHDT 4. Khái ni ệm tái sử dụng trong LTHDT 5. Khái ni ệm kế thừa trong LTHDT 6. Khái ni ệm đa hình trong lập trình hướng đối tượng H.Q. Thắng - C.T. Dũng BM CNPM 12 7. Khởi tạo và giải phóng đối tượng trong LTHDT 8. B ắt lỗi và xử lý lỗi trong LTHDT 9. Phân tích và thi ết kế hướng đối tượng 10. Extreme programming 11. T ại sao ngôn ngữ C++ thông dụng 12. T ại sao ngôn ngữ Java thông dụng 13. Quá trình d ịch một phần mềm 14. Các đặc điểm của công cụ biên dich độc lập 15. Câu h ỏi và bài tập tuần 1 Chương 1. Các khái niệm cơ bản trong Lập trình hướng đối tượng (LTHDT) tiếp 7 H.Q. Thắng - C.T. Dũng BM CNPM 13 1. Lịch sử phát triển của các ngôn ngữ lập trình  Tất cả các ngôn ngữ lập trình cho phép và yêu c ầu chúng ta phải trừu tượng hóa (abstraction).  Trong tất cả các ngôn ngữ lập trình chúng ta đã tr ực tiếp hoặc gián tiếp thực hiện trừu tượng hóa.  Hợp ngữ (Assembly language) là một ngôn ngữ lập trình tu ần tự, gần với tập các lệnh mã máy của CPU vì thế khả năng trừu tượng hóa là rất nhỏ.  Các ngôn ngữ lập trình cấu trúc khả năng trừu tượng đã tăng lên rất nhiều so với hợp ngữ. Tư tưỏng chính: tìm ra cách th ể hiện bài toán cần giải quyết bằng nh ững cấu trúc lập trình có trong các ngôn ngữ tương ứng.  Phương pháp tiếp cận hướng logic (logic-oriented) H.Q. Thắng - C.T. Dũng BM CNPM 14 1. Lịch sử phát triển của các ngôn ngữ lập trình  Mong muốn tìm ra môt cách tiếp cận cho phép giải quy ết chung được số lượng lớn các bài toán.  Phương pháp tiếp cận hướng đối tượng được coi là m ột phương pháp tốt để phục vụ cho mục đích ấy.  Chúng ta tiếp cận bài toán bằng cách thể hiện các thành ph ần của bài toán là các “đối tượng” (object).  Mỗi đối tượng có thể coi như một “thành phần sống” - có ngh ĩa là nó có trạng thái, có các hoạt động - th ực hiện các thao tác nào đó. Các thao tác này thực hi ện các chức năng của hệ thống. 8 H.Q. Thắng - C.T. Dũng BM CNPM 15 Trừu tượng hóa  Trừu tượng hóa điều khiển (control abstraction): M ột trong những đặc tính quan tr ọng của các ngôn ngữ lập trình.  a = (1 + 2) * 5;  Bao gồm trong đó khái niệm, trừu tượng hóa ch ức năng  Trừu tượng hóa dữ liệu: Chỉ quan tâm dữ liệu được sử dụng như thế nào, không quan tâm nó được biểu diễn cụ thể ra sao. H.Q. Thắng - C.T. Dũng BM CNPM 16 1. Lịch sử phát triển của các ngôn ngữ lập trình Alan Kay đã tổng hợp các đặc tính của LTHDT: 1. T ất cả đều là đối tượng. 2. Chương trình phần mềm có thể coi là một tập h ợp các đối tượng tương tác với nhau 3. M ỗi đối tượng trong chương trình có các dữ liệu độc lập của mình và chiếm bộ nhớ riêng c ủa mình. 4. M ỗi đối tượng đều có dạng đặc trưng của lớp các đối tượng đó. 5. T ất cả các đối tượng thuộc về cùng một lớp đều có các hành vi giống nhau 9 H.Q. Thắng - C.T. Dũng BM CNPM 17 2. Đối tượng và các khái niệm liên quan  Đối tượng  Giao diện của đối tượng  Lớp đối tượng  Thuộc tính đối tượng  Hành vi đối tượng  Gửi thông điệp  Biểu điễn đối tượng - biểu đồ đối tượng và bi ểu đồ lớp trong UML H.Q. Thắng - C.T. Dũng BM CNPM 18 Đối tượng (object)  Đối tượng là chìa khóa để hiểu được kỹ thuật hướng đối tượng  Trong hệ thống hướng đối tượng, m ọi thứ đều là đối tượng Viết một chương trình hướng đối tượng nghĩa là đang xây dựng một mô hình của một vài bộ phận trong thế giới thực 10 H.Q. Thắng - C.T. Dũng BM CNPM 19 Đối Tượng Thế Giới Thực (Real Object)  Một đối tượng thế giới thực là một thực th ể cụ thể mà thông thường chúng ta có thể sờ, nhìn thấy hay cảm nhận được.  Tất cả có tr ạng thái (state) và hành động (behaviour) H.Q. Thắng - C.T. Dũng BM CNPM 20 Đối Tượng Phần Mềm (Software Object)  Các đối tượng phần mềm có thể được dùng để biểu diễn các đối tượng thế giới th ực.  Cũng có trạng thái và hành động  Trạng thái: thuộc tính (attribute; property)  Hành động: phương thức (method) [...].. .Đối tượng Đối tượng phần mềm Đối tượng (object) là một thực thể phần mềm bao bọc các thuộc tính và các phương thức liên quan Đối tượng phần mềm Xe Đạp Thuộc tính được xác định bởi giá trị cụ thể gọi là thuộc tính thể hiện Một đối tượng cụ thể được gọi là một thể hiện H.Q Thắng - C.T Dũng BM CNPM 21 Lớp đối tượng    Trong thế giới thực có nhiều đối tượng cùng loại Chương trình hướng đối tượng. .. BM CNPM 49 9 Phân tích và thiết kế hướng đối tượng  Trong giai đoạn này , một trong những yêu cầu quan trong đó là thiết kế các đối tượng (object design) Trong PT&TK hướng đối tượng người ta đã tổng kết 5 bước để thiết kế đối tượng: Bước 1 Phát hiện đối tượng (Object discovery) Bước này được thực hiện ở giai đoạn phân tích chương trình Chúng ta phát hiện các đối tượng nhờ các yếu tố bên ngoài và các... cần thêm các lớp mới, các đối tượng mới và các tương tác giữa các đối tượng này với các đối tượng đã có trong hệ thống Bước 5 Tái sử dụng đối tượng (Object reuse) Đây là một trong những thử nghiệm quan trọng của các đối tượng và lớp trong thiết kế phần mềm Chúng ta cần phải sử dụng lại các lớp và các đối tượng trong phần mềm (thông qua tính kế thừa và tương tác giữa các đối tượng) H.Q Thắng - C.T Dũng... điểm bên ngoài Bước 2 Lắp ráp đối tượng (Object assembly) Bước tìm kiếm các đặc điểm của đối tượng để thêm vào các thuộc tính, các hàm thành phần cho đối tượng H.Q Thắng - C.T Dũng BM CNPM 50 25 9 Phân tích và thiết kế hướng đối tượng Bước 3 Xây dựng hệ thống (System construction) Trong giai đoạn này chúng ta phát triển các đối tượng, xem xét các tương tác giữa các đối tượng để hình thành hệ thống hoạt... và đối tượng trong một số NNLT  Lớp Time trong Java H.Q Thắng - C.T Dũng BM CNPM 27 Java: Chương trình và các đối tượng H.Q Thắng - C.T Dũng BM CNPM 28 14 Lớp Time trong C++ H.Q Thắng - C.T Dũng BM CNPM 29 Chương trình và các đối tượng: C++ H.Q Thắng - C.T Dũng BM CNPM 30 15 Chương trình và các đối tượng: C++ H.Q Thắng - C.T Dũng BM CNPM 31 Đóng gói (Encapsulation)  Kết quả của quá trình trừu tượng. .. các đối tượng và các biến nói chung trong kỹ thuật lập trình:  Phương pháp thứ nhất: Để tạo điều kiện cho chương trình có thể thực hiện với tốc độ cao nhất, tất cả các biến và các đối tượng đã được chia sẻ trước bộ nhớ, người ta gọi phương pháp này là nguyên lý lưu trữ tĩnh các biến và đối tượng (static storage) Các biến và các đối tượng luôn có sẵn và tồn tại trong suốt thời gian thực hiện chương trình. .. tập các đối tượng trao đổi thông điệp với nhau return SS# 25 H.Q Thắng - C.T Dũng BM CNPM Giao diện của đối tượng   Thử thách của LTHDT là có thể ánh xạ một phần tử (thực thể) trong không gian bài toán về một đối tượng trong không gian lời giải Một đối tượng có thể được sử dụng khi nó có thể đáp ứng được một số "yêu cầu" nào đó từ bên ngoài Giao diện của đối tượng định nghĩa các dịch vụ mà đối tượng. .. hướng đối tượng    Phân tích và thiết kế hướng đối tượng là một trong các phương pháp hiệu quả nhất để phát triển phần mềm Nếu như quan trong nhất trong LTHDT là lớp và đối tượng thì từ đó chúng ta cũng cần có một phướng pháp hướng đối tượng cho phép chúng ta phát triển các phần mềm tương ứng Phương pháp luận (methodology) trong PT&TK phần mềm thông thường được dịnh nghĩa như là một tập các quá trình. .. các đối số khác nhau: khác nhau về số lượng các đối số có trong hàm, khác nhau về kiểu dữ liệu của các đối số C++ Java  Nguyên lý chồng toán tử trong LTHDT: LTV có khả năng định nghĩa những toán tử đã tồn tại trong các ngôn ngữ lập trình tương ứng trên các dữ liệu mới - các đối tượng thuộc các lớp mà người lập trình muốn xây dựng Java C++ H.Q Thắng - C.T Dũng BM CNPM 41 7 Khởi tạo và giải phóng đối tượng. .. trong máy tính chương trình được dịch H.Q Thắng - C.T Dũng BM CNPM 68 Với Java    34 H.Q Thắng - C.T Dũng BM CNPM 69 15 Ví dụ, câu hỏi, bài tập Các câu hỏi tuần 1: 1 Khái niệm đối tượng và các tính chất của đối tượng 2 Các khái niệm liên quan: thực hiện ẩn, khởi tạo, giải phóng đối tượng 3 Phân tích thiết kế hướng đối tượng 4 Khái niệm UML, CRC 5 Khái niệm Extreme programming 6 Quy trình dịch một mã . CNPM 17 2. Đối tượng và các khái niệm liên quan  Đối tượng  Giao diện của đối tượng  Lớp đối tượng  Thuộc tính đối tượng  Hành vi đối tượng  Gửi thông điệp  Biểu điễn đối tượng - biểu đồ đối tượng và. CNPM 18 Đối tượng (object)  Đối tượng là chìa khóa để hiểu được kỹ thuật hướng đối tượng  Trong hệ thống hướng đối tượng, m ọi thứ đều là đối tượng Viết một chương trình hướng đối tượng nghĩa. Một đối tượng cụ thể được gọi là một thể hiện. H.Q. Thắng - C.T. Dũng BM CNPM 22 Lớp đối tượng  Trong thế giới thực có nhiều đối tượng cùng loại.  Chương trình hướng đối tượng có nhiều đối tượng

Ngày đăng: 16/09/2014, 14:59

Tài liệu cùng người dùng

Tài liệu liên quan