Bài giảng Lập trình hướng đối tượng Chương 2: Tổng quan lập trình hướng đối tượng giới thiệu, các phương pháp lập trình, một số khái niệm cơ bản, các đặc điểm quan trọng của OOP, một số thuật ngữ OOP.
TỔNG QUAN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG Khoa Cơng nghệ phần mềm CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung 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 2/29/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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ệ 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 … 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 yêu cầu thay đổi sử dụng chương trình 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 toàn hệ thống 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 10 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 chuyên biệt Các lớp sử dụng để tạo nhiều đối tượng cụ thể 29/02/2016 25 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 26 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 hàm 27 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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) 29/02/2016 28 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đó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 29/02/2016 29 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đó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 29/02/2016 30 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 31 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đ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 29/02/2016 32 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 33 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 34 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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) 29/02/2016 35 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 36 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 37 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 29/02/2016 38 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Q&A CuuDuongThanCong.com https://fb.com/tailieudientucntt ... trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Lập trình Hướng đối tượng Lập trình hướng đối tượng phương pháp lập trình dựa kiến trúc lớp (class) đối tượng (object)... 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 29/02/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Lập trình khơng có cấu... ty ? ?Lập trình hướng đối tượng (Object Oriented Programming – LTHĐT)? Là phương pháp lập trình lấy đối tượng làm tảng để xây dựng thuật giải, xây dựng chương trình 29/02/2016 15 Lập trình hướng