Tài liệu Bài giảng Lập trình hướng đối tượng 1 - Chương 1: Tổng quan - Thái Kim Phụng: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1 Trường ĐH Kinh Tế Tp.HCMKhoa Tin Học Quản LýCHƯƠNG 1: TỔNG QUANMục tiêuTrong chương này sinh viên sẽ được:Tìm hiểu các khái niệm cơ bản của lập trình hướng đối tượngTìm hiểu các đặc điểm của lập trình hướng đối tượngThiết kế theo hướng đối tượngNội dung1. Các khái niệm cơ bản 2. Các đặc điểm của OOP 3. Thiết kế theo hướng đối tượng Tại sao phải lập trình hướng đối tượng?Sự tiến hóa của các phương pháp lập trình:Lập trình không cấu trúc (Unstructured programming)Lập trình thủ tục (Procedural programming)Lập trình đơn thể (Modular programming)Lập trình hướng đối tượng (Object oriented programming)Lập trình không cấu trúcMột dãy các lệnh đơn giản được viết trong chương trình chính (Main program).Các lệnh này cùng thao tác trên một dữ liệu (data) toàn cục.Nhược điểm: Chỉ thích hợp cho các chương trình nhỏ Dẫn đến lập trình thủ tụcMain ProgramDataProgramLập trình thủ tụcChương trình có cấu trúc hơnKiểm tra lỗi dễ hơnChương trình chính có nhiệm vụ truyền dữ liệu ...
39 trang |
Chia sẻ: putihuynh11 | Lượt xem: 636 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Bài giảng Lập trình hướng đối tượng 1 - Chương 1: Tổng quan - Thái Kim Phụng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 1 Trường ĐH Kinh Tế Tp.HCMKhoa Tin Học Quản LýCHƯƠNG 1: TỔNG QUANMục tiêuTrong chương này sinh viên sẽ được:Tìm hiểu các khái niệm cơ bản của lập trình hướng đối tượngTìm hiểu các đặc điểm của lập trình hướng đối tượngThiết kế theo hướng đối tượngNội dung1. Các khái niệm cơ bản 2. Các đặc điểm của OOP 3. Thiết kế theo hướng đối tượng Tại sao phải lập trình hướng đối tượng?Sự tiến hóa của các phương pháp lập trình:Lập trình không cấu trúc (Unstructured programming)Lập trình thủ tục (Procedural programming)Lập trình đơn thể (Modular programming)Lập trình hướng đối tượng (Object oriented programming)Lập trình không cấu trúcMột dãy các lệnh đơn giản được viết trong chương trình chính (Main program).Các lệnh này cùng thao tác trên một dữ liệu (data) toàn cục.Nhược điểm: Chỉ thích hợp cho các chương trình nhỏ Dẫn đến lập trình thủ tụcMain ProgramDataProgramLập trình thủ tụcChương trình có cấu trúc hơnKiểm tra lỗi dễ hơnChương trình chính có nhiệm vụ truyền dữ liệu cho các thủ tụcNhóm các thủ tục theo các chức năng: Lập trình đơn thểProgramMain ProgramDataProcedure1Procedure2Procedure3Lập trình đơn thểMain Program(Also a module)DataModule1 +DataData1Procedure1Module2 +DataData2Procedure2Procedure3Chương trình chính gọi phối hợp các thủ tục trong các module khác nhau và truyền dữ liệu như là các tham sốLập trình hướng đối tượngObject1Data1+Procedures1Object3 Data3 + Procedures3Object2Data2 + Procedures2 Object4 Data4 + Procedures4Dữ liệu và chức năng thao tác trên dữ liệu được gom lại thành một đối tượngChương trình không dựa trên chức năng mà dựa trên đối tượngLập trình hướng đối tượngLập trình hướng đối tượng (Object Oriented Programming - OOP) là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng thuật giải, xây dựng chương trình.Khi viết chương trình theo phương pháp hướng đối tượng ta phải trả lời các câu hỏi:Chương trình liên quan tới những đối tượng nào?Mỗi đối tượng cần có những dữ liệu và thao tác nào?Các đối tượng quan hệ với nhau như thế nào trong chương trình?Lập trình hướng đối tượngOrderProductShip viaĐối tượngĐối tượng (Object):Trong thế giới thực, khái niệm đối tượng được hiểu như là một thực thể: người, vật, .Mỗi đối tượng sẽ tồn tại trong một hệ thống và có ý nghĩa nhất định trong hệ thống.Đối tượng được đặc trưng bởi các thuộc tính, và các hoạt động (hành vi, thao tác, phương thức)Đối tượngCác thuộc tínhThành phần dữ liệu của một đối tượngXác định các đặc trưng mô tả của một đối tượngVí dụ: con chó của bạn có màu nâu, ĐTDĐ của bạn thuộc hãng NokiaCác phương thứcThành phần xử lý của một đối tượngXác định các hành vi của một đối tượngVí dụ: con chó đi, ĐTDĐ nhắn tin SMSĐối tượngĐối tượng = Dữ liệu + Các phương thứcHoặc:Đối tượng = Trạng thái + Hành vi=++=Đối tượngI am anobject!UNIQUE OBJECT IDENTIFIER (OID) NAME MARKDOB 14/02/1964JOB LECTURERATTRIBUTESStateCHANGE JOBGET AGEBEHAVIOUR MethodsLớpCác đối tượng có các đặc tính tương tự nhau được gom chung lại thành lớp. Lớp là một khung mẫu (template, blueprint, prototype) để tạo đối tượng. Ví dụ: lớp “Mèo” xác định các thuộc tính và các phương thức của một con mèo, Nhưng lớp “Mèo” không phải là một đối tượng. Một đối tượng được tạo từ một lớpLà một minh họa của một lớp. Ví dụ: bạn là một minh họa của lớp “SinhViên”, con mèo của bạn là một minh họa của lớp “Mèo”LớpLớp và đối tượngSự khác biệt giữa một lớp và một đối tượng:Một lớp định nghĩa một thực thể, trong khi đó một đối tượng là một trường hợp của thực thể ấy.Đối tượng là một mô hình thực, trong khi lớp là một mô hình khái niệm định nghĩa tất cả các thuộc tính và các phương thức cần thiết của một đối tượng.Tất cả các đối tượng thuộc về cùng một lớp có cùng các thuộc tính và các phương thức.Lớp và đối tượngLớp và đối tượngLớp và đối tượngLớp và đối tượng HoaHuệHươngHồngCô gáiClassObjectCác đặc điểm của OOPĐặc điểm quan trọng của OOP:Tính trừu tượng (abstraction)Tính đóng gói (encapsulation)Tính đa hình (polymorphism)Tính kế thừa (inheritance)Các đặc điểm của OOPTính trừu tượng (abstraction)Là cách nhìn đơn giản hóa về một đối tượng mà trong đó chỉ bao gồm các đặc điểm được quan tâm và bỏ qua những chi tiết không cần thiết.Đây là khả năng của chương trình bỏ qua hoặc không chú ý đến một số khía cạnh của thông tin mà nó đang trực tiếp làm việc, nghĩa là nó có khả năng tập trung vào những cốt lõi cần thiết.Các đặc điểm của OOPStudentProfessorCourse Offering (9:00 AM, Monday-Wednesday-Friday)Course (e.g. Algebra)Các đặc điểm của OOPCác đặc điểm của OOPCác đặc điểm của OOPTính đa hình (polymorphism)Là khả năng gửi một thông điệp chung tới nhiều đối tượng mà mỗi đối tượng lại có cách xử lý riêng theo ngữ cảnh của nó.Ví dụ:Định nghĩa 2 đối tượng “hinh_vuong” và “hinh_tron” có một phương thức chung là “ve”Khi gọi phương thức này thì nếu đối tượng là “hinh_vuong” nó sẽ vẽ theo cách khác với khi đối tượng là “hinh_tron”Các đặc điểm của OOPCác đặc điểm của OOPTính đa hình (polymorphism)Trong các ngôn ngữ lập trình OOP, tính đa hình thể hiện qua khả năng cho phép mô tả những phương thức có tên giống nhau trong các lớp khác nhau. Đặc điểm này giúp người lập trình không phải viết những cấu trúc điều khiển rườm rà trong chương trình, các khả năng khác nhau của thông điệp chỉ thực sự đòi hỏi khi chương trình thực hiện.Các đặc điểm của OOPCác đặc điểm của OOPTính đóng gói (encapsulation) Tính chất này không cho phép người sử dụng các đối tượng thay đổi trạng thái nội tại của một đối tượng. Chỉ có các phương thức nội tại của đối tượng cho phép thay đổi trạng thái của nó. Việc cho phép môi trường bên ngoài tác động lên các dữ liệu nội tại của một đối tượng theo cách nào là hoàn toàn tùy thuộc vào người viết mã. Đây là tính chất đảm bảo sự toàn vẹn của đối tượng. Các đặc điểm của OOPGET AGEMETHODCHANGE JOBMETHODNAME: MARKDOB: 14/02/64JOB: LECTURERGET AGECHANGE JOBXOBJECTCác đặc điểm của OOPTính kế thừa (inheritance)Đặc tính này cho phép một đối tượng có thể có sẵn các đặc tính mà đối tượng khác đã có thông qua kế thừa.Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại. Các đặc điểm của OOPCác đặc điểm của OOPTính kế thừa (inheritance)Kế thừa hình thành nên phân cấp các lớpLợi ích của kế thừa:Chia sẻ các thuộc tính và phương thức (tránh viết lại code)Mô hình hóa sự tổng quát hóa và chuyên biệt hóa trong thế giới thựcViết các thành phần phần mềm chung, tổng quát (lớp cha/ lớp cơ sở), sau đó mở rộng/ dẫn xuất ra các lớp con/ dẫn xuất cần thiếtCác đặc điểm của OOPThiết kế theo hướng đối tượngLập trình hướng đối tượng là quy trình tạo một chương trình dựa theo một thiết kế hướng đối tượng.Phương pháp này tiến hành tiến trình phân tích, thiết kế chương trình thông qua việc xây dựng các đối tượng có sự tương hợp với các đối tuợng thực tế. Điều này làm cho việc sửa đổi dễ dàng hơn khi cần thay đổi chương trình.Vì sao chọn C#?Vì sao chọn C#?C# được coi là một ngôn ngữ hướng đối tượng vì nó cung cấp các tiện ích đặc biệt cho việc tổ chức chương trình và dữ liệu theo mô hình hướng đối tượng.
Các file đính kèm theo tài liệu này:
- bai_giang_lap_trinh_huong_doi_tuong_1_ch01_7331_1987360.ppt