Chương 02 Phương pháp lập trình hướng đối tượng

35 1 0
Chương 02 Phương pháp lập trình hướng đối tượng

Đ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

Chương 02 Phương pháp lập trình hướng đối tượng I Lập trình cấu trúc lập trình hướng đối tượng II Các khái niệm lập trình hướng đối tượng III Các ngơn ngữ lập trình hướng đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 I Lập trình cấu trúc lập trình hướng đối tượng Lập trình cấu trúc Lập trình hướng đối tượng Ngơ Cơng Thắng - Bài giảng LTHĐT - Chương 02 Lập trình cấu trúc  Tư tưởng lập trình cấu trúc (structural programming) chia chương trình thành chương trình (trong C++ gọi hàm) module Mỗi hàm thực nhiệm vụ xác định đó, cịn module bao gồm số hàm liên quan  Khi chương trình ngày lớn phức tạp lập trình cấu trúc bắt đầu bộc lộ điểm yếu Và cho dù chương trình lớn có cài đặt tốt đến phức tạp Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình cấu trúc (tiếp)  Mơ hình lập trình cấu trúc sau: Dữ liệu Hàm Dữ liệu Hàm Dữ liệu Hàm Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Hàm Lập trình cấu trúc (tiếp)  Lý làm cho phương pháp lập trình cấu trúc tự bộc lộ điểm yếu liệu chương trình không coi trọng Các liệu quan trọng chương trình lưu trữ biến tồn cục, cho phép hàm truy nhập Mà hàm lại viết nhiều người lập trình khác nên nguy hỏng, liệu lớn  Hơn nữa, nhiều hàm truy nhập liệu nên liệu thay đổi hàm phải thay đổi theo Việc tìm hàm cần thay đổi khó việc thay đổi hàm cho cịn khó Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình cấu trúc (tiếp)  Lập trình cấu trúc thường khó thiết kế chương trình thành phần chương trình cấu trúc (là hàm cấu trúc liệu) không mô giới thực Ví dụ: giả sử ta cần viết mã để tạo giao diện đồ họa với người sử dụng menu, cửa sổ, nút bấm,… Nếu lập trình cấu trúc câu hỏi đặt dùng cấu trúc liệu nào? Các hàm cần làm gì? Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình hướng đối tượng  Ý tưởng lập trình hướng đối tượng (object oriented programming, OOP) chia chương trình thành đối tượng Đối tượng thực thể chương trình kết hợp liệu hàm thao tác liệu  Cách để truy nhập liệu đối tượng thông qua hàm đối tượng (trong C++, hàm đối tượng gọi hàm thành viên) Nếu ta muốn đọc liệu đối tượng ta phải gọi hàm thành viên đối tượng Hàm thành viên đọc liệu trả giá trị cho ta Ta truy nhập trực tiếp liệu đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình hướng đối tượng (tiếp) Đối tượng Dữ liệu Hàm thành viên Hàm thành viên Đối tượng Đối tượng Dữ liệu Dữ liệu Hàm thành viên Hàm thành viên Hàm thành viên Hàm thành viên Mơ hình lập trình hướng đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình hướng đối tượng (tiếp)  Trong lập trình hướng đối tượng liệu ẩn để tránh thay đổi vơ tình làm hỏng liệu Dữ liệu hàm tác động lên đóng gói thực thể chương trình  Nếu muốn thay đổi liệu đối tượng phải biết xác hàm tương tác với nó; tức hàm thành viên đối tượng Khơng có hàm truy nhập liệu Điều giúp đơn giản hoá việc viết, gỡ rối, bảo trì chương trình Ngơ Công Thắng - Bài giảng LTHĐT - Chương 02 Lập trình hướng đối tượng (tiếp) Dữ liệu phịng kinh doanh Phòng kinh doanh Trưởng phòng kinh doanh Phòng nhân Nhân viên phòng kinh doanh Phòng tài vụ Dữ liệu phòng nhân Dữ liệu phòng tài vụ Trưởng phòng nhân Trưởng phòng tài vụ Nhân viên phịng nhân Nhân viên phịng tài vụ Mơ hình công ty kinh doanh Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 10 Lớp (class)  Một lớp đối tượng (gọi tắt lớp) mô tả nhóm đối tượng tương tự Nó xác định liệu hàm có đối tượng lớp  Khái niệm lớp lập trình hướng đối tượng giống khái niệm lớp sinh học Ví dụ: cá chép, cá trôi, cá mè thuộc lớp cá  Nếu so sánh với kiểu liệu lớp giống kiểu liệu, đối tượng giống biến kiểu Ngơ Cơng Thắng - Bài giảng LTHĐT - Chương 02 21 Lớp (tiếp)  Một đối tượng gọi thể (instance) lớp đối tượng trường hợp cụ thể mơ tả lớp Vì liệu đối tượng lớp khác nên liệu lớp gọi liệu thực thể (instance data) Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 22 Sự kế thừa (inheritance)  Trong sống ta thấy lớp lại chia thành lớp Chẳng hạn lớp động vật chia thành cá, chim, động vật có vú ; lớp xe cộ chia thành xe con, xe buýt, xe tải, xe máy,  Nguyên tắc phân chia thành lớp lớp có đặc điểm giống với lớp mà tách Ví dụ: xe con, xe tải, xe buýt xe máy, tất có tay lái, động cơ, dùng để vận chuyển người hàng hoá Đây đặc điểm xe cộ Ngoài đặc điểm này, lớp cịn có đặc điểm riêng nó: Các xe buýt có chỗ ngồi cho nhiều người, xe tải có thùng xe để chở hàng hố Ngơ Cơng Thắng - Bài giảng LTHĐT - Chương 02 23 Sự kế thừa (tiếp)  Trong lập trình hướng đối tượng lớp làm sở cho nhiều lớp khác Một lớp gọi lớp sở Các lớp mà định nghĩa có đặc điểm lớp sở thêm vào đặc điểm riêng gọi lớp dẫn xuất Như vậy, lớp dẫn xuất kế thừa đặc điểm lớp sở Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 24 Kế thừa (tiếp) Lớp sở Đặc điểm A Đặc điểm B Lớp dẫn xuất Đặc điểm A Đặc điểm B Đặc điểm A Đặc điểm B Đặc điểm E Đặc điểm C Đặc điểm D Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 Đặc điểm A Đặc điểm B Đặc điểm F 25 Sự sử dụng lại (Reusability)  Khi lớp viết hồn hảo bán cho người lập trình khác để sử dụng chương trình riêng họ Việc gọi sử dụng lại  Việc sử dụng lại tương tự việc sử dụng thư viện hàm lập trình cấu trúc Tuy nhiên, lập trình hướng đối tượng, nhờ có kế thừa mà ý tưởng sử dụng lại mở rộng nhiều Người lập trình lấy lớp có, thêm đặc điểm khả cho mà khơng cần thay đổi Để làm điều người lập trình đơn giản tạo lớp dẫn xuất kế thừa toàn đặc điểm lớp có cịn thêm vào đặc điểm Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 26 Sự sử dụng lại (Tiếp)  Ví dụ: giả sử ta viết (hoặc mua) lớp tạo hệ thống menu Lớp menu tốt ta khơng muốn thay đổi nó, ta lại muốn làm cho số mục menu nhấp nháy Để làm điều ta đơn giản tạo lớp dẫn xuất kế thừa tất khả lớp có có thêm mục menu nhấp nháy  Việc sử dụng lại phần mềm có lợi ích lập trình hướng đối tượng Ngơ Cơng Thắng - Bài giảng LTHĐT - Chương 02 27 Sự đa hình (polymorphism)  Trong lập trình hướng đối tượng ta sử dụng hàm tốn tử theo nhiều cách khác tùy thuộc vào mà chúng tác động Đây gọi đa hình  Sự đa hình thực theo hai cách:   Đa hình thời điểm biên dịch thơng qua việc chồng hàm chồng tốn tử Đa hình thời điểm chạy chương trình thơng qua việc sử dụng hàm ảo Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 28 Sự đa hình chồng hàm (tiếp)  Chồng hàm cho phép có nhiều hàm trùng tên có đối số khác Chồng toán tử cho phép sử dụng toán tử có (chẳng hạn +, -) tác động kiểu liệu người lập trình định nghĩa Khi hàm hay toán tử gọi trình biên dịch biết cách chọn hàm, tốn tử để thực  Trường hợp lớp dẫn xuất lớp sở có hàm thành viên giống hệt gọi hàm thành viên trình biên dịch không xác định gọi hàm nào, hàm lớp sở hay lớp dẫn xuất Chỉ đến chạy chương trình biết hàm gọi dựa vào kiểu đối tượng gọi hàm Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 29 Đóng gói thơng tin (Encapsulation)  Trong LTHDT người ta phân biệt hai công việc: thứ công việc tạo lớp đối tượng (class creators), thứ hai công việc sử dụng lớp đối tượng  Khi tạo lớp, người tạo lớp xác định cho phép người sử dụng lớp truy nhập, phần cịn lại che giấu khơng cho người sử dụng lớp quyền truy nhập Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 30 Đóng gói thơng tin (Encapsulation) Khả che giấu liệu cho phép người tạo lớp thay đổi hay định nghĩa lại lớp mà chắn khơng ảnh hưởng tới chương trình người sử dụng lớp  C++ sử dụng từ khóa sau để xác định khả truy nhập thơng tin liệu từ bên ngồi lớp: public, private, protected Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 31 Truyền thơng điệp  Chương trình hướng đối tượng bao gồm tập đối tượng mối quan hệ đối tượng với  Các đối tượng gửi nhận thông tin với giống người trao đổi với Chính nguyên lý trao đổi thông tin cách truyền thông điệp giúp dễ dàng xây dựng hệ thống mô tả đẩy đủ, trung thực hệ thống thực tế Truyền thông điệp cho đối tượng tức báo cho phải thực việc Cách đáp ứng đối tượng mơ tả qua hàm thành viên đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 32 Truyền thông điệp (tiếp)  Thông điệp truyền phải tên đối tượng nhận thông điệp, tên hàm cần thực thông tin truyền Cấu trúc thông điệp sau: Tên_đối_tượng.Tên_hàm(Đối_số) Đối tượng Thông báo Thông tin Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 33 III Các ngơn ngữ lập trình hướng đối tượng  Tư tưởng lập trình hướng đối tượng cài đặt nhiều ngơn ngữ lập trình khác C, Pascal Tuy nhiên, sử dụng ngôn ngữ ngôn ngữ hướng đối tượng gặp nhiều khó khăn, với chương trình lớn phức tạp Những ngôn ngữ thiết kế để hỗ trợ cho việc mô tả, cài đặt khái niệm phương pháp lập trình hướng đối tượng gọi chung ngơn ngữ hướng đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 34 III Các ngơn ngữ lập trình hướng đối tượng (tiếp)  Các ngơn ngữ lập trình gọi ngơn ngữ hướng đối tượng phải có đặc điểm sau:      Bao gói thơng tin: đưa liệu hàm thao tác liệu vào cấu trúc (gọi lớp) Cơ chế che giấu liệu Tự động tạo lập xóa bỏ đối tượng Sự kế thừa Sự đa hình (chồng hàm, chồng tốn tử liên kết động)  C++, Smalltalk, Object Pascal, Java, C#, … ngơn ngữ lập trình hướng đối tượng Ngô Công Thắng - Bài giảng LTHĐT - Chương 02 35

Ngày đăng: 24/06/2023, 16:43

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

  • Đang cập nhật ...

Tài liệu liên quan