PowerPoint Presentation TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ThS Trần Anh Dũng Nội dung 14092014 Lập trình hướng đối tượng 2 Giới thiệu 1 Các phương pháp lập trình 2 Một số khái niệm cơ bản 3 Các.lập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trìnhlập trình
TỔNG QUAN VỀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ThS Trần Anh Dũng Nội dung 14/09/2014 Giới thiệu Các phương pháp lập trình Một số khái niệm Các đặc điểm quan trọng OOP Một số thuật ngữ OOP Lập trình hướng đối tượng Giới thiệu Mục tiêu kỹ sư lập trình: Tạo sản phẩm tốt cách có hiệu Nắm bắt cơng nghệ 14/09/2014 Lập trình hướng đối tượng Giới thiệu Độ phức tạp độ lớn ngày cao: Một số hệ Unix chứa khoảng 4M dòng lệnh MS Windows chứa hàng chục triệu dòng lệnh Người dùng ngày đòi hỏi nhiều chức năng, đặc biệt chức thông minh Phần mềm cần sửa đổi … 14/09/2014 Lập trình hướng đối tượng Giải pháp Cần kiểm sốt chi phí: Chi phí phát triển Chi phí bảo trì Giải pháp sử dụng lại (tái sử dụng): Giảm chi phí thời gian phát triển Nâng cao chất lượng 14/09/2014 Lập trình hướng đối tượng Giải pháp Để sử dụng lại (mã nguồn): Cần dễ hiểu Được coi xác Có giao diện rõ ràng Tính module hóa Khơng u cầu thay đổi sử dụng chương trình 14/09/2014 Lập trình hướng đối tượng Mục tiêu việc thiết kế phần mềm Tính tái sử dụng (reusability): thiết kế thành phần sử dụng nhiều phần mềm khác Tính mở rộng (extensibility) Tính mềm dẻo (flexibility): Có thể dễ dàng thay đổi thêm liệu hay tính Các thay đổi khơng làm ảnh hưởng nhiều đến tồn hệ thống 14/09/2014 Lập trình hướng đối tượng Các phương pháp lập trình Sự tiến hóa phương pháp lập trình: Lập trình khơng có cấu trúc Lập trình có cấu trúc (lập trình thủ tục), hướng chức Lập trình hướng đối tượng 14/09/2014 Lập trình hướng đối tượng Lập trình khơng có cấu trúc Là phương pháp xuất đầu tiên: Các ngôn ngữ Assembly, Basic Sử dụng biến toàn cục Lạm dụng lệnh GOTO Nhược điểm? Khó hiểu, khó bảo trì, khơng thể sử dụng lại Chất lượng kém, Chi phí cao Khơng thể phát triển ứng dụng lớn 14/09/2014 Lập trình hướng đối tượng Lập trình khơng có cấu trúc Ví dụ: 10 k =1 20 gosub 100 30 if y > 120 goto 60 40 k = k+1 50 goto 20 60 print k, y 70 stop 100 y = 3*k*k + 7*k-3 110 return 14/09/2014 Lập trình hướng đối tượng 10 Thiết kế theo hướng đối tượng Trừu tượng hóa liệu hàm/thủ tục liên quan Chia hệ thống thành lớp/đối tượng Mỗi lớp/đối tượng có tính hành động chun biệt Các lớp sử dụng để tạo nhiều đối tượng cụ thể 14/09/2014 Lập trình hướng đối tượng 25 Các đặc điểm quan trọng OOP Các lớp đối tượng - Classes Đóng gói - Encapsulation Thừa kế - Inheritance Đa hình - Polymorphism 14/09/2014 Lập trình hướng đối tượng 26 Trừu tượng hóa Thế giới thực Trừu tượng hóa Thuộc tính Phần mềm Dữ liệu Thực thể Hành động 14/09/2014 Lập trình hướng đối tượng hàm 27 Trừu tượng hóa Cách nhìn khái qt hóa tập đối tượng có chung đặc điểm quan tâm (và bỏ qua chi tiết không cần thiết) 14/09/2014 Lập trình hướng đối tượng 28 Đóng gói – Che dấu thơng tin Đóng gói: Nhóm có liên quan với vào làm một, để sau dùng tên để gọi đến Các hàm/ thủ tục đóng gói câu lệnh Các đối tượng đóng gói liệu chúng thủ tục có liên quan 14/09/2014 Lập trình hướng đối tượng 29 Đóng gói – Che dấu thơng tin Che dấu thơng tin: đóng gói để che số thông tin chi tiết cài đặt nội để bên ngồi khơng nhìn thấy Che giấu mà người dùng khơng cần Che giấu mà cần giữ bí mật 14/09/2014 Lập trình hướng đối tượng 30 Thừa kế Là chế cho phép lớp D có thuộc tính thao tác lớp C, thể thuộc tính thao tác định nghĩa lớp D Cho phép cài đặt nhiều quan hệ đối tượng: Đặc biệt hóa (“là”) Khái qt hóa 14/09/2014 Lập trình hướng đối tượng 31 Đa hình Là chế cho phép tên thao tác thuộc tính định nghĩa nhiều lớp có nhiều cài đặt khác lớp lớp 14/09/2014 Lập trình hướng đối tượng 32 Các ưu điểm OOP Nguyên lý kế thừa: tránh lặp, tái sử dụng Nguyên lý đóng gói – che dấu thơng tin: chương trình an tồn khơng bị thay đổi bới đoạn chương trình khác Dễ mở rộng, nâng cấp Mô giới thực tốt 14/09/2014 Lập trình hướng đối tượng 33 Các đặc tính OOP Chương trình chia thành đối tượng Các cấu trúc liệu thiết kế cho đặc tả đối tượng Các hàm thao tác vùng liệu đối tượng gắn với cấu trúc liệu 14/09/2014 Lập trình hướng đối tượng 34 Các đặc tính OOP Dữ liệu đóng gói lại, che giấu không cho phép hàm ngoại lai truy nhập tự Các đối tượng tác động trao đổi thơng tin với qua hàm Có thể dễ dàng bổ sung liệu hàm vào đối tượng cần thiết Chương trình thiết kế theo cách tiếp cận từ lên (bottom-up) 14/09/2014 Lập trình hướng đối tượng 35 Một số thuật ngữ OOP OOM (Object Oriented Methodology): Phương pháp luận hướng đối tượng OOA (Object Oriented Analysis): Phân tích hướng đối tượng OOD: Object Oriented Design (Thiết kế hướng đối tượng) OOP: Object Oriented Programming (LTHĐT) Inheritance: Kế thừa Polymorphism: Đa hình Encapsulation: Tính đóng gói 14/09/2014 Lập trình hướng đối tượng 36 Ngôn ngữ OOP Cung cấp khả lập trình hướng đối tượng Cung cấp khả kiểm soát truy cập Kế thừa Đa hình 14/09/2014 Lập trình hướng đối tượng 37 Bài kiểm tra Viết chương trình cho phép nhập dãy phân số Cài đặt hàm tính tổng phân số tìm phân số lớn 14/09/2014 Lập trình hướng đối tượng 38 Q&A ... Lập trình hướng đối tượng 14 Lập trình hướng đối tượng Trong giới thực, chung quanh đối tượng, thực thể có mối quan hệ với Ví dụ: Các phịng cơng ty Lập trình hướng đối tượng (Object Oriented... liên quan Chia hệ thống thành lớp/đối tượng Mỗi lớp/đối tượng có tính hành động chuyên biệt Các lớp sử dụng để tạo nhiều đối tượng cụ thể 14/09/2014 Lập trình hướng đối tượng 25 Các đặc điểm quan. .. đối tượng có chung đặc điểm quan tâm (và bỏ qua chi tiết không cần thiết) 14/09/2014 Lập trình hướng đối tượng 28 Đóng gói – Che dấu thơng tin Đóng gói: Nhóm có liên quan với vào làm một, để sau