LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 1 pptx

12 382 0
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG - Chương 1 pptx

Đ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 Chương 1: NHẬP MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Giáo viên: Võ Hồng Bảo Châu Khoa CNTT trường ĐH Lạc Hồng LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG MỤC TIÊUMỤC TIÊU • Nhận biết sự khác biệt giữa lập trình hướng thủ tục và lập trình hướng đối tượng. • Phân tích, thiết kế và hiện thực được một chương trình theo phương pháp hướng đối tượng. • Nhận diện một số ngôn ngữ OOP. • Nhận biết các khái niệm cơ bản của OOP. 2 OOP-CHƯƠNG 1- NHẬP MÔN OOP NỘI DUNG CHI TIẾTNỘI DUNG CHI TIẾT • LẬP TRÌNH THỦ TỤC – POP • LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG – OOP • SƠ LƯỢC VỀ OOP – ĐỐI TƯỢNG – HÀNH VI – THÔNG ĐIỆP – DỮ LIỆU – ĐẶC TÍNH • GIẢI BÀI TOÁN VỚI OOP • TÓM TẮT 3 OOP-CHƯƠNG 1- NHẬP MÔN OOP LẬP TRÌNH THỦ TỤCLẬP TRÌNH THỦ TỤC • POP- Procedure Oriented Programming. – Phân công việc  những việc nhỏ hơn – Là các chương trình con – Thiết kế top-down • Kỹ thuật POP: Problem Data structure Operation (function) Program struct XX { }; type Fun (XX x) { }; void main() { X x; Fun(x); }; pick nouns pick verbs Data structure + Algorithm = Program 4 OOP-CHƯƠNG 1- NHẬP MÔN OOP 2 NHƯỢC ĐIỂM CỦA POPNHƯỢC ĐIỂM CỦA POP • Diễn đạt “thiếu tự nhiên” Có học sinh x “Viết lý lịch cho học sinh x” “x ơi, viết lý lịch đi em” “x ơi, viết lý lịch đi em” VietLyLich(x); x.VietLyLich(); Diễn đạt nào tự nhiên hơn? 5 OOP-CHƯƠNG 1- NHẬP MÔN OOP NHƯỢC ĐIỂM CỦA POPNHƯỢC ĐIỂM CỦA POP • Khó mô tả những quan hệ phức tạp của thế giới tự nhiên. Biểu diễn dạng cấu trúc “phức tạp”, không phải là dễ dàng đối với nhiều người. – Quan hệ giữa các dữ liệu được biểu diễn bằng cấu trúc lồng nhau hoặc một pointer.  Tính phân lớp khó được phát hiện, có khó khăn trong biểu diễn lẫn tính dễ hiểu. • Bảo mật kém do không thể giới hạn truy xuất đến một dữ liệu. struct STUDENT { char Name[21]; int Age; int Score; }; void main() {STUDENT x = { “Hoa”, 19, 5}; x.Age=1000; x.Score=-20; }; Bạn nghĩ sao về 2 tác vụ này? 6 OOP-CHƯƠNG 1- NHẬP MÔN OOP OOP Cần một phương pháp lập trình khác giúp giải quyết những nhược điểm này. OOP có những đặc điểm vượt trội so với POP và là hướng lập trình chủ đạo hiện nay. 7 OOP-CHƯƠNG 1- NHẬP MÔN OOP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGLẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • OOP – Object Oriented Programming. • Chương trình là sự hoạt động của các đối tượng  Giống tự nhiên. • Đối tượng thực thi một hoạt động tức là đối tượng thực hiện một hành vi mà đối tượng này có khả năng. • Một chương trình là một trật tự các lời yêu cầu đối tượng thực hiện hành vi của mình.  Chương trình là một kích bản (script). 8 OOP-CHƯƠNG 1- NHẬP MÔN OOP 3 • Từ những đối tượng, sự vật, sự kiện, tạo nên chương trình • Thiết kế bottom-up Đối tượng = Dữ liệu + Hành vi = + 9 OOP-CHƯƠNG 1- NHẬP MÔN OOP ƯU ĐIỂM CỦA OOPƯU ĐIỂM CỦA OOP • Dễ mô tả các quan hệ phân cấp trong thế giới tự nhiên. Tự nhiên Person Male Female is a is a class PERSON { } ; class MALE: PERSON {<dữ liệu thêm> } ; class FEMALE: PERSON { <dữ liệu thêm> } ; tự nhiên Hiện thực 10 OOP-CHƯƠNG 1- NHẬP MÔN OOP ƯU ĐIỂM CỦA OOPƯU ĐIỂM CỦA OOP • Có tính bảo mật cao: Bên ngoài không thể tùy tiện truy cập một dữ liệu thuộc tính. 11 OOP-CHƯƠNG 1- NHẬP MÔN OOP ƯU ĐIỂM CỦA OOPƯU ĐIỂM CỦA OOP Tái sử dụng code Tái sử dụng code 12 OOP-CHƯƠNG 1- NHẬP MÔN OOP 4 SỰ KHÁC BIỆTSỰ KHÁC BIỆT  Theo thủ tục Rút tiền (withdraw), gửi tiền (deposit), chuyển tiền (transfer)  Hướng đối tượng Khách hàng (customer), tiền (money), tài khoản (account) 13 OOP-CHƯƠNG 1- NHẬP MÔN OOP SƠ LƯỢC VỀ OOPSƠ LƯỢC VỀ OOP Đối tượng = Dữ liệu + Hành vi = + 14 OOP-CHƯƠNG 1- NHẬP MÔN OOP ĐỐI TƯỢNGĐỐI TƯỢNG  Một đối tượng như là một hộp đen, mà chi tiết bên trong được dấu kín  Các đối tượng giao tiếp với nhau thông qua việc truyền các thông điệp (messages)  Thông điệp được nhận bởi các hành vi của đối tượng 15 OOP-CHƯƠNG 1- NHẬP MÔN OOP Lan Cúc TrúcMai girl class object 16 OOP-CHƯƠNG 1- NHẬP MÔN OOP 5 Mai DỮ LIỆU (data): -Xinh đẹp -Dịu dàng HÀNH VI (behavior ): -mua sắm -làm việc nhà -… 17 OOP-CHƯƠNG 1- NHẬP MÔN OOP HÀNH VI (BEHAVIOR)HÀNH VI (BEHAVIOR) • Thao tác (operation) • Phương thức (method) • Hàm (function) • Thủ tục (procedure) 18 OOP-CHƯƠNG 1- NHẬP MÔN OOP DỮ LIỆU (DATA)DỮ LIỆU (DATA) • Thông tin (information) • Tính chất (property) • Thuộc tính (attribute) • Trường (field) 19 OOP-CHƯƠNG 1- NHẬP MÔN OOP NHỮNG GÌ LÀ ĐỐI TƯỢNGNHỮNG GÌ LÀ ĐỐI TƯỢNG  Vật có thể sờ mó được (Tangible things)  Vai trò (Roles)  Sự việc xảy ra, tình tiết (Incidents)  Sự tương tác (Interactions)  Sự mô tả (Specifications)  Như là xe hơi, máy in,  Công nhân, người chủ,  Chuyến bay, tràn số,  Ký kết thỏa ước, mua hàng,  Màu, hình dạng 20 OOP-CHƯƠNG 1- NHẬP MÔN OOP 6 THÔNG ĐIỆPTHÔNG ĐIỆP • Gửi thông điệp: Yêu cầu 1 đối tượng thực thi một hành vi. • Thí dụ: x là một HOCSINH < Name, Age> x.VietLyLich(); String S= x.getName(); int n= x.getAge(); 21 OOP-CHƯƠNG 1- NHẬP MÔN OOP MỘT SỐ ĐẶC TÍNHMỘT SỐ ĐẶC TÍNH • TÍNH ĐÓNG GÓI (ENCAPSULATION) • TÍNH THỪA KẾ (INHERITANCE) • TÍNH ĐA HÌNH (POLYMORPHISM) 22 OOP-CHƯƠNG 1- NHẬP MÔN OOP TÍNH ĐÓNG GÓI (ENCAPSULATION)TÍNH ĐÓNG GÓI (ENCAPSULATION) • Dữ liệu và thao tác được nhóm lại với nhau Thực chất là sự ghép chung những hiểu biết về thế giới thực  Có sự đồng nhất giữa dữ liệu và thao tác trên dữ liệu Account Withdraw Deposit Transfer 23 OOP-CHƯƠNG 1- NHẬP MÔN OOP TÍNH THỪA KẾ (INHERITANCE)TÍNH THỪA KẾ (INHERITANCE)  Tạo ra một kiểu dữ liệu mới từ kiểu đã có  Nhằm sử dụng lại, và bổ sung những gì cần thiết  Thực chất là sự phân lớp (classification) trong việc thiết kế hệ thống theo hướng đối tượng 24 OOP-CHƯƠNG 1- NHẬP MÔN OOP 7 TÍNH THỪA KẾ (INHERITANCE)TÍNH THỪA KẾ (INHERITANCE)  Theo ngôn ngữ lớp, sự thừa kế có nghĩa là một lớp thừa kế các đặc tính của lớp khác.  Đây chính là quan hệ “là một” (“is a”) A car is a vehicle A teacher is a person A dog is an animal 25 OOP-CHƯƠNG 1- NHẬP MÔN OOP TÍNH ĐA HÌNH (POLYMORPHISM)TÍNH ĐA HÌNH (POLYMORPHISM) • Nhiều đối tượng cùng chia sẻ đặc tính chung, nhưng có những tác động khác nhau. • Có cùng yêu cầu, nhưng mỗi đối tượng có đáp ứng khác nhau. • Thực chất là tính đa dạng (many form) • Để hiện thực được tính đa hình, ngôn ngữ đối tượng có đặc tính như overload, override. 26 OOP-CHƯƠNG 1- NHẬP MÔN OOP Overloaded và Overridden methods ?Overloaded và Overridden methods ? • Overloaded methods: – Nhằm cung cấp các dạng khác nhau của hành vi, nhưng vẫn có cùng tên gọi. • Overridden methods: – Hiện thực lại hành vi đã có của tổ tiên – Phải có cùng tên và trùng mọi yếu tố tạo nên hành vi này. 27 OOP-CHƯƠNG 1- NHẬP MÔN OOP NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGNGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • C++ ( Borland C++, Visual C++) • Java • C# ( C sharp) • Visual Basic. • 28 OOP-CHƯƠNG 1- NHẬP MÔN OOP 8 • C++, MS VC++: hỗ trợ cả POP lẫn OOP  Lai OOP. Hỗ trợ đa thừa kế. Đối tượng là biến của chương trình. Hàm main() là POP. • Java (Sun), C# (Microsoft): chỉ hỗ trợ OOP, hàm main phải nằm trong một lớp. Chỉ hỗ trợ đơn thừa kế. 29 OOP-CHƯƠNG 1- NHẬP MÔN OOP NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGNGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Fortran (1954) Algol (1958) LISP (1957) Scheme (1975) CPL (1963), U Cambridge Combined Programming Language BCPL (1967), MIT Basic Combined Programming Language B (1969), Bell Labs C (1970), Bell Labs C++ (1983), Bell Labs Java (1995), Sun Objective C 30 OOP-CHƯƠNG 1- NHẬP MÔN OOP Phương pháp giải bài toán theo OOPPhương pháp giải bài toán theo OOP Problem properties Operation (function, method, behavior) Program class XX { type1 prop1; type2 prop2; type Method1( ) { } }; void main() { XX x; // object variable x.Method( ); }; pick nouns pick verbs Bao gói dữ liệu và hành vi thành class 31 OOP-CHƯƠNG 1- NHẬP MÔN OOP SO SÁNH 2 CÁCH ViẾT CHƯƠNG TRÌNHSO SÁNH 2 CÁCH ViẾT CHƯƠNG TRÌNH • Viết chương trình nhập, xuất 1 học sinh. Thông tin cần quan tâm về 1 học sinh: Mã học sinh (8 ký tự), tên học sinh (30 ký tự), điểm (int). • Danh từ: Học sinh  cấu trúc HS • Động từ: – Bắt đầu; – Nhập một hs  Hàm Nhap(HS&hs) – Xuất một hs  Hàm Xuat(HS hs); – Ngưng. 32 OOP-CHƯƠNG 1- NHẬP MÔN OOP 9 Giải bài toán hướng POP với C++Giải bài toán hướng POP với C++ 33 OOP-CHƯƠNG 1- NHẬP MÔN OOP Giải bài toán hướng OOPGiải bài toán hướng OOP 34 OOP-CHƯƠNG 1- NHẬP MÔN OOP Đối chứng hai cách hiện thựcĐối chứng hai cách hiện thực 35 OOP-CHƯƠNG 1- NHẬP MÔN OOP TÓM TẮTTÓM TẮT • POP: Xem dữ liệu và tác vụ rời nhau. • Các nhược điểm của POP – Mô tả các quan hệ giữa các đối tượng dữ liệu trong tự nhiên theo cac1h “không tự nhiên”. – Khó tái sử dụng code. – Bảo mật kém. Chương trình=cấu trúc dữ liệu + thuật toán 36 OOP-CHƯƠNG 1- NHẬP MÔN OOP 10 TÓM TẮTTÓM TẮT • OOP: Xem dữ liệu và tác vụ là một thể thống nhất. • Ưu điểm của OOP: – Mô tả các quan hệ giữa các đối tượng dữ liệu trong tự nhiên theo cách “ tự nhiên”. – Dễ tái sử dụng code. – Có cơ chế bảo mật dữ liệu. Đối tượng = Dữ liệu + Hành vi 37 OOP-CHƯƠNG 1- NHẬP MÔN OOP TÓM TẮTTÓM TẮT TRONG OOP • Đối tượng phải thuộc một lớp (class). • OOP CÓ 3 ĐẶC TÍNH CƠ BẢN: – TÍNH ĐÓNG GÓI (ENCAPSULATION) – TÍNH THỪA KẾ (INHERITANCE) – TÍNH ĐA HÌNH (POLYMORPHISM) 38 OOP-CHƯƠNG 1- NHẬP MÔN OOP • Lập trình OOP cũng tương tự như lập trình POP nhưng mô tả bài toán dưới dạng các class, các tác vụ xử lý dữ liệu thành các hành vi của class. • Khai báo class cũng tương tự như khai báo struct nhưng có khác struct ở chỗ đưa các tác vụ thao tác lên struct vào trong class và gọi chúng là các methods của lớp struct StructName { <data> }; Type1 Func1 (StructName stru) { <code>} Type2 Func2 (StructName stru) {<code>} các hàm đều toàn cục class ClassName { <data> Modifier : Type1 Func1 () { <code>} Modifier : Type2 Func2 () { <code>} }; Chỉ có method public là toàn cục public private protected 39 OOP-CHƯƠNG 1- NHẬP MÔN OOP CÂU HỎI PHẦN TỰ HỌCCÂU HỎI PHẦN TỰ HỌC TỰ DIỄN TẢ THEO Ý BẢN THÂN • Trình bày phương pháp lập trình POP. • Trình bày phương pháp lập trình OOP. • Nhận xét ưu và khuyết điểm của cả 2 phương pháp 40 OOP-CHƯƠNG 1- NHẬP MÔN OOP [...]... dần 43 OOP-CHƯƠNG 1- NHẬP MÔN OOP • ÔN LẠI NGÔN NGỮ LẬP TRÌNH C/C++ – Kiểu dữ liệu – Biến, hằng, biểu thức, phép toán – Câu lệnh điều kiện: if, switch – Câu lệnh lặp: for, while, do while – Hàm: khai báo, truyền tham số, gọi hàm,… – Mảng 1 chiều, 2 chiều – Chuỗi ký tự – Cấu trúc struct – Con trỏ • Làm bài tập về nhà 44 OOP-CHƯƠNG 1- NHẬP MÔN OOP 11 THANK YOU 45 OOP-CHƯƠNG 1- NHẬP MÔN OOP 12 ... năm đó có hợp lệ không? Nếu có in ra ngày hôm sau 3) Nhập vào 1 ma trận mxn Tính tổng các phần tử nằm trên đường chéo chính 41 4 Viết chương trình tính tổng, hiệu, tích, thương của 2 phân số nhập từ bàn phím In ra kết quả dưới dạng tối giản 5 Viết chương trình giải phương trình bậc 1: ax+b=0 với a,b là 2 số thực nhập từ bàn phím 6 Viết chương trình nhập hồ sơ học sinh của lớp học gồm: tên, tuổi, điểm... theo thự tự của tên OOP-CHƯƠNG 1- NHẬP MÔN OOP BÀI TẬP TẠI LỚP 42 OOP-CHƯƠNG 1- NHẬP MÔN OOP BÀI CHUẨN BỊ TRƯỚC 7 Nhập vào tọa độ 2 điểm trong mặt phẳng Tính và in ra tọa độ trung điểm của chúng 8 Nhập vào thời gian bắt đầu chạy và thời gian đến của một vận động viên Cho biết thời gian chạy của vận động viên đó 9 Tính diện tích của hình tròn, hình vuông, hình chữ nhật, hình tam giác 10 Nhập danh sách n...BÀI TẬP TẠI LỚP BÀI TẬP TẠI LỚP • HÃY PHÂN TÍCH CÁC BÀI TẬP SAU, XÁC ĐỊNH ĐỐI TƯỢNG CẦN QUAN TÂM LÀ GÌ, THÀNH PHẦN DỮ LiỆU VÀ THÀNH PHẦN HÀNH VI CỦA CÁC ĐỐI TƯỢNG ĐÓ, TỪ ĐÓ XÂY DỰNG THÀNH LỚP (CHƯA YÊU CẦU VIẾT CODE) 1) Nhập vào 3 số thực Kiểm tra xem đó có phải là 3 cạnh của tam giác hay không Nếu phải, hãy cho biết tam giác đó là tam giác gì . so với POP và là hướng lập trình chủ đạo hiện nay. 7 OOP-CHƯƠNG 1- NHẬP MÔN OOP LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGLẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • OOP – Object Oriented Programming. • Chương trình là sự hoạt. tài khoản (account) 13 OOP-CHƯƠNG 1- NHẬP MÔN OOP SƠ LƯỢC VỀ OOPSƠ LƯỢC VỀ OOP Đối tượng = Dữ liệu + Hành vi = + 14 OOP-CHƯƠNG 1- NHẬP MÔN OOP ĐỐI TƯỢNGĐỐI TƯỢNG  Một đối tượng như là một hộp. này. 27 OOP-CHƯƠNG 1- NHẬP MÔN OOP NGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNGNGÔN NGỮ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG • C++ ( Borland C++, Visual C++) • Java • C# ( C sharp) • Visual Basic. • 28 OOP-CHƯƠNG 1- NHẬP

Ngày đăng: 11/07/2014, 20:20

Từ khóa liên quan

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

Tài liệu liên quan