BỘ MÔN CÔNG NGHỆ PHẦN MỀM. BÀI: ĐỐI TƯỢNG VÀ LỚP

41 2 0
BỘ MÔN CÔNG NGHỆ PHẦN MỀM. BÀI: ĐỐI TƯỢNG VÀ LỚP

Đ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

Đối tượng Lớp Nguyễn Khắc Huy CuuDuongThanCong.com BMCNPM – ĐHKHTN TPHCM 09/2014 https://fb.com/tailieudientucntt Nội dung □ Khái niệm đối tượng lớp □ Tầm vực □ Nạp chồng hàm □ Bài tập CuuDuongThanCong.com https://fb.com/tailieudientucntt Nhắc lại □ Mục tiêu việc thiết kế phần mềm: o 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 o Tính mở rộng (extensibility): hỗ trợ plugins o 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Quá trình thiết kế phần mềm □ Mục tiêu: xây dựng nên phần mềm □ Quá trình thiết kế: chia phần mềm thiết kế theo phần, component □ Trừu tượng hóa: cần thiết thiết kế Cụ thể: bỏ qua chi tiết component, quan tâm thành phần mức trừu tượng □ Xác định component: top-down □ Tích hợp: bottom-up Gắn kết components nhỏ lại với CuuDuongThanCong.com https://fb.com/tailieudientucntt Các cách tiếp cận thiết kế □ Thiết kế theo hàm/thủ tục: o Tìm hàm/thủ tục để hoàn tất yêu cầu o Kết hệ thống cấu trúc mối quan hệ hàm/thủ tục □ Thiết kế theo module o Phân tích tìm module bao gồm thành phần liệu hàm/thủ tục liên quan o Cách thực dựa vào việc gom nhóm thành phần tương tự ý nghĩa, phạm vi… 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ể 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 CuuDuongThanCong.com hàm 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) CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng (object) gì? □ Đối tượng giới thực: thực thể cụ thể mà ta sờ, nhìn thấy hay cảm nhận □ Đối tượng phần mềm: dùng để biểu diễn đối tượng giới thực □ Mỗi đối tượng bao gồm thành phần: thuộc tính hành động CuuDuongThanCong.com https://fb.com/tailieudientucntt Khái niệm đối tượng lớp □ Chương trình cỗ máy phức tạp □ Cấu thành từ nhiều loại vật liệu □ Vật liệu bản: cấu trúc, hàm □ Đã đủ tạo chương trình tốt? Vật liệu mới: Đối tượng!! 10 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tốn tử phạm vi :: □ Ví dụ: class PhanSo PhanSo PhanSo::cong(PhanSo p) { { // Cài đặt bên lớp private: } int m_iTuSo; int m_iMauSo; public: PhanSo cong(PhanSo p) { // Cài đặt bên lớp } }; 27 CuuDuongThanCong.com https://fb.com/tailieudientucntt Toán tử phạm vi :: □ Con trỏ this: Mỗi lớp có trỏ this Đại diện cho đối tượng gọi phương thức Hữu dụng số trường hợp class PhanSo void main() { { private: PhanSo p1; int m_iTuSo; p1.ganTuSo(3); int m_iMauSo; public: PhanSo p2; void ganTuSo(int iTuSo) { this->m_iTuSo = iTuSo; } p2.ganTuSo(5); }; } 28 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung □ Khái niệm đối tượng lớp □ Tầm vực □ Nạp chồng hàm □ Bài tập 29 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nạp chồng hàm □ Chữ ký hàm (Function Signature): Phân biệt hàm Đặt trưng hàm: – Tên hàm – Danh sách tham số double sapXep(int aMang[], int iKichThuoc); PhanSo PhanSo::cong(PhanSo p); Giá trị trả không thuộc chữ ký hàm!! Chương trình có nhiều hàm tên!! 30 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nạp chồng hàm □ Những trường hợp nạp chồng hàm không hợp lệ? int tinhToan(int a, int b); int tinhToan(int x, int y); int tinhToan(int a, float b); float tinhToan(int u, int v); int tinhToan(int a, long b); 31 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tóm tắt □ Khái niệm đối tượng lớp: Đối tượng: thành phần tạo nên chương trình Đối tượng bao gồm thuộc tính phương thức Lớp: tập hợp đối tượng thuộc tính phương thức □ Tầm vực: Phạm vi hoạt động thuộc tính phương thức Có mức: public, private, protected □ Nạp chồng hàm: Nhiều hàm tên, khác tham số 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tách biệt khai báo định nghĩa class Ngay { private: public: int layNgay() { return iNgay; } }; 33 CuuDuongThanCong.com // file header H class Ngay { private: public: int layNgay(); }; //trong file CPP int Ngay::layNgay() { return iNgay; } https://fb.com/tailieudientucntt Tách thành phần khai báo cài đặt □ File header (interface): Ngay.h Chứa thông tin khai báo lớp Ngày □ File xử lý (implementation): Ngay.cpp Chứa cài đặt xử lý lớp Ngày 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung □ Khái niệm đối tượng lớp □ Tầm vực □ Nạp chồng hàm □ Bài tập 35 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập □ Bài tập 2.1: Xây dựng lớp phân số cho phép thực thao tác:  Nhập, xuất  Lấy tử số, mẫu số  Gán giá trị cho tử số, mẫu số  Nghịch đảo, rút gọn  Cộng, trừ, nhân, chia với phân số khác 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập □ Bài tập 2.2: Xây dựng lớp số phức cho phép thực thao tác:  Nhập, xuất  Lấy phần thực, phần ảo  Gán giá trị cho phần thực, phần ảo  Tính module  Cộng, trừ, nhân, chia với số phức khác 37 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập □ Bài tập 2.3: Xây dựng lớp đơn thức cho phép thực thao tác:  Nhập, xuất  Lấy hệ số, số mũ  Gán giá trị cho hệ số, số mũ  Tính giá trị, đạo hàm, nguyên hàm  Cộng, trừ, nhân, chia với đơn thức khác 38 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập □ Bài tập 2.4: Thông tin học sinh bao gồm:  Họ tên  Điểm văn, toán Xây dựng lớp học sinh cho phép thực thao tác:  Nhập, xuất  Lấy họ tên, điểm văn, toán  Gán giá trị cho họ tên, điểm văn, điểm tốn  Tính điểm trung bình  Xếp loại theo tiêu chí – Giỏi (>= 8.0), Khá (>= 7.0) – Trung bình (>= 5.0), Yếu (< 5) 39 CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập □ Bài tập 2.5: Xây dựng lớp mảng cho phép thực thao tác sau:  Nhập, xuất mảng  Lấy kích thước mảng  Lấy phần tử vị trí  Gán giá trị cho phần tử vị trí  Tìm phần tử mảng  Sắp xếp tăng, giảm 40 CuuDuongThanCong.com https://fb.com/tailieudientucntt Lời cảm ơn □ Nội dung xây dựng dựa slide trình bày Thầy Đinh Bá Tiến, Thầy Nguyễn Minh Huy 41 CuuDuongThanCong.com https://fb.com/tailieudientucntt

Ngày đăng: 25/09/2022, 13:25

Hình ảnh liên quan

Một cách thể hiện điển hình - BỘ MÔN CÔNG NGHỆ PHẦN MỀM. BÀI: ĐỐI TƯỢNG VÀ LỚP

t.

cách thể hiện điển hình Xem tại trang 16 của tài liệu.

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

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

Tài liệu liên quan