Bài giảng Lập trình hướng đối tượng - Chương 01: Nhập môn lập trình hướng đối tượng (Introduction to OOP)

ppt 29 trang phuongnguyen 6590
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Lập trình hướng đối tượng - Chương 01: Nhập môn lập trình hướng đối tượng (Introduction to OOP)", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pptbai_giang_lap_trinh_huong_doi_tuong_chuong_01_nhap_mon_lap_t.ppt

Nội dung text: Bài giảng Lập trình hướng đối tượng - Chương 01: Nhập môn lập trình hướng đối tượng (Introduction to OOP)

  1. Chương 01 NHẬP MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Introduction to OOP Chương 01- Nhập môn OOP Slide 1/
  2. Mụ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. Chương 01- Nhập môn OOP Slide 2/
  3. Nội dung chi tiết • Từ lập trình cấu trúc đến lập trình hướng đối tượng. • Phương pháp lập trình hướng đối tượng. • Ưu điểm của lập trình hướng đối tượng. Chương 01- Nhập môn OOP Slide 3/
  4. 1.1- Lập trình thủ tục • POP- Procedure Oriented Programming. • Data structure + Algorithm = Program • Kỹ thuật POP: Program struct XX { pick Data }; nouns structure type Fun (XX x) Problem { }; pick Operation verbs (function) void main() { X x; Fun(x); }; Chương 01- Nhập môn OOP Slide 4/
  5. 1.2- Nhượ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” VietLyLich(x); “x ơi, viết lý lịch đi em” x.VietLyLich(); Diễn đạt nào tự nhiên hơn? “x ơi, viết lý lịch đi em” Chương 01- Nhập môn OOP Slide 5/
  6. Nhượ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. • Thí dụ ở slide sau. Chương 01- Nhập môn OOP Slide 6/
  7. Nhược điểm của POP Tự nhiên Hiện thực struct PERSON Person { } ; struct MALE is a is a { PERSON Data Diễn đạt } ; phải Male Female tường minh → không struct FEMALE tự nhiên { PERSON Data } ; Chương 01- Nhập môn OOP Slide 7/
  8. Nhược điểm của POP • 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 void main() { char Name[21]; {STUDENT x = { “Hoa”, 19, 5}; int Age; x.Age=1000; Bạn nghĩ sao về 2 int Score; x.Score=-20; tác vụ này? }; }; Chương 01- Nhập môn OOP Slide 8/
  9. Nhược điểm của POP • 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. Chương 01- Nhập môn OOP Slide 9/
  10. 1.3- Lậ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). Chương 01- Nhập môn OOP Slide 10/
  11. 1.4- Ư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 Hiện thực class PERSON Person { } ; is a is a class MALE: PERSON { tự } ; nhiên Male Female class FEMALE: PERSON { } ; Chương 01- Nhập môn OOP Slide 11/
  12. Ưu điểm của POP • 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. Chương 01- Nhập môn OOP Slide 12/
  13. Ưu điểm của OOP: Dễ tái sử dụng code Tái sử dụng code Tái sử dụng code Chương 01- Nhập môn OOP Slide 13/
  14. 1.5- Sơ lược về OOP • Đối tượng (object): Bao gói dữ liệu + hành vi. • Đối tượng phải thuộc một lớp (class). • Xây dựng một đối tượng là xây dựng một lớp ➔ Class = data (biến, thuộc tính)+ methods (code). Chương 01- Nhập môn OOP Slide 14/
  15. Sơ lược về OOP • 3 khái niệm cơ bản của OOP – Bao gói (đóng gói) dữ liệu + hành vi. – Tính thừa kế: Một lớp có thể thừa kế từ lớp khác. – Tính đa hình: Kỹ thuật cho phép có khác biệt giữa code của cùng một hành vi trong lớp cha và trong lớp con. Chương 01- Nhập môn OOP Slide 15/
  16. 1.6- Ngôn ngữ OOP • C++ ( Borland C++, Visual C++) • Java • C# ( C sharp) • Visual Basic. • Chương 01- Nhập môn OOP Slide 16/
  17. Ngôn ngữ OOP • 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ế. Chương 01- Nhập môn OOP Slide 17/
  18. 1.7- Phương pháp giải bài toán theo OOP Program class XX pick properties { type1 prop1; nouns type2 prop2; type Method1( ) Problem Bao gói dữ liệu và { hành vi thành class } }; pick Operation verbs void main() (function, { X x; // object variable method, x.Method( ); behavior) }; Chương 01- Nhập môn OOP Slide 18/
  19. Giải bài toán hướng POP với C • 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. Chương 01- Nhập môn OOP Slide 19/
  20. Giải bài toán hướng POP với C++ Chương 01- Nhập môn OOP Slide 20/
  21. Giải bài toán hướng OOP Chương 01- Nhập môn OOP Slide 21/
  22. Đối chứng hai cách hiện thực Chương 01- Nhập môn OOP Slide 22/
  23. Tó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 cách “không tự nhiên”. – Khó tái sử dụng code. – Bảo mật kém. Chương 01- Nhập môn OOP Slide 23/
  24. Tó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. Chương 01- Nhập môn OOP Slide 24/
  25. Câu hỏi • 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. Chương 01- Nhập môn OOP Slide 25/
  26. Trắc nghiệm (1) Với khai báo struct, ta vẫn có thể tạo cơ chế bảo mật một thành phần dữ liệu. (a) Đúng (b) Sai. (2) Với khai báo struct, muốn thao tác đến dữ liệu bắt buộc phải thông qua một hàm. (a) Đúng (b) Sai. (3) Để tái sử dụng code C++, code được tái sử dụng phải được để trong một file và không có hàm main. (a) đúng (b) sai. Chương 01- Nhập môn OOP Slide 26/
  27. Bài tập • Dùng OOP với C++. Viết chương trình nhập vào 3 học sinh, xuất thông tin chi tiết về 3 học sinh này gồm: Mã, tên, điểm trung bình. Thông tin về một học sinh: Mã, Tển, điểm 3 môn học. Chương 01- Nhập môn OOP Slide 27/
  28. 1.8- Giới thiệu ngôn ngữ Java Chương 01- Nhập môn OOP Slide 28/
  29. THANK YOU Chương 01- Nhập môn OOP Slide 29/