Bài giảng Lập trình hướng đối tượng Chương 4: Khởi tạo đối tượng hàm bạn và lớp bạn

48 75 0
Bài giảng Lập trình hướng đối tượng  Chương 4: Khởi tạo đối tượng hàm bạn và lớp bạn

Đ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

Bài giảng Lập trình hướng đối tượng Chương 4: Khởi tạo đối tượng hàm bạn và lớp bạn tìm hiểu về đối tượng là thành phần của lớp, đối tượng là thành phần của mảng, đối tượng được cấp phát động, hàm bạn, lớp bạn, các nguyên tắc xây dựng lớp.

KHỞI TẠO ĐỐI TƯỢNG  HÀM BẠN VÀ LỚP BẠN Khoa Công nghệ phần mềm CuuDuongThanCong.com https://fb.com/tailieudientucntt Nội dung Đối tượng thành phần lớp Đối tượng thành phần mảng Đối tượng cấp phát động Hàm bạn Lớp bạn Các nguyên tắc xây dựng lớp 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần lớp Đối tượng thành phần đối tượng khác, đối tượng thuộc lớp “lớn” tạo ra, thành phần tạo 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần lớp Phương thức thiết lập (nếu có) tự động gọi cho đối tượng thành phần Khi đối tượng kết hợp bị hủy  đối tượng thành phần bị hủy, nghĩa phương thức hủy bỏ gọi cho đối tượng thành phần, sau phương thức hủy bỏ đối tượng kết hợp gọi 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần lớp Nếu đối tượng thành phần phải cung cấp tham số thiết lập đối tượng kết hợp (đối tượng lớn) phải có phương thức thiết lập để cung cấp tham số thiết lập cho đối tượng thành phần Cú pháp để khởi động đối tượng thành phần dùng dấu hai chấm (:) theo sau tên thành phần tham số khởi động 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ class TamGiac{ Diem A, B, C; public: TamGiac(double xA, double yA, double xB, double yB, double xC, double yC){: A(xA,yA), B(xB,yB),C(xC,yC){ } void Ve(); // }; TamGiac t(100,100,200,400,300,300); 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ class TamGiac{ Diem A,B,C; int loai; public: TamGiac(double xA, double yA, double xB, double yB, double xC, double yC, int l): A(xA,yA), B(xB,yB), C(xC,yC), loai(l) { } Cú pháp dấu hai chấm dùng cho đối void Ve(); ? tượng thành phần thuộc // kiểu sở }; TamGiac t (100, 100, 200, 400, 300, 300, 1); 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ class Diem{ double x,y; public: Diem(double xx = 0, double yy = 0) : x(xx), y(yy){ } void Set(double xx, double yy){ x = xx; ? y = yy; } }; 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần mảng 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần mảng Khi mảng tạo các phần tử tạo phương thức thiết lập gọi cho phần tử Vì khơng thể cung cấp tham số khởi động cho tất phần tử mảng khi khai báo mảng, đối tượng mảng phải có khả tự khởi động, nghĩa thiết lập khơng cần tham số 09/03/2016 10 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Lớp bạn (Friend class) Một lớp truy cập đến thành phần có thuộc tính private lớp khác Để thực điều này, lấy toàn lớp làm bạn (hàm friend) cho lớp khác 09/03/2016 34 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Ví dụ class TOM{ public: friend class JERRY; private: int SecretTom; }; class JERRY{ public: void Change(TOM T){ T.SecterTom++; } }; 09/03/2016 //Có lớp bạn JERRY //Bí mật TOM //Bạn nên thay 35 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao diện chi tiết cài đặt Lớp có hai phần tách rời Phần giao diện khai báo phần public để người sử dụng “thấy” sử dụng Chi tiết cài đặt bao gồm liệu khai báo phần private lớp chi tiết mã hóa hàm thành phần, vơ hình người dùng Lớp ThoiDiem cài đặt với thành phần liệu giờ, phút, giây tổng số giây tính từ 09/03/2016 36 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Giao diện chi tiết cài đặt Ta thay đổi uyển chuyển chi tiết cài đặt, nghĩa thay đổi tổ chức liệu lớp, thay đổi chi tiết thực hàm thành phần (do thay đổi tổ chức liệu để cải tiến giải thuật) Nhưng bảo đảm khơng thay đổi phần giao diện khơng ảnh hưởng đến người sử dụng, khơng làm đổ vỡ kiến trúc hệ thống 09/03/2016 37 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Lớp ThoiDiem – Cách class ThoiDiem{ int gio, phut, giay; static bool HopLe(int g, int p, int gy); public: ThoiDiem(int g = 0, int p = 0, int gy = 0) {Set(g,p,gy);} void Set(int g, int p, int gy); int LayGio() const {return gio; } int LayPhut() const {return phut; } int LayGiay() const {return giay; } void Nhap(); void Xuat() const; void Tang(); void Giam(); }; 09/03/2016 38 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Lớp ThoiDiem – Cách class ThoiDiem{ long tsgiay; static bool HopLe(int g, int p, int gy); public: ThoiDiem(int g = 0, int p = 0, int gy = 0) {Set(g,p,gy);} void Set(int g, int p, int gy); int LayGio() const {return tsgiay/3600;} int LayPhut() const {return (tsgiay%3600)/60;} int LayGiay() const {return tsgiay%60;} void Nhap(); void Xuat() const; void Tang(); void Giam(); }; 09/03/2016 39 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Hình thành lớp: Khi ta nghĩ đến “nó” khái niệm riêng lẻ Xây dựng lớp biểu diễn khái niệm Lớp biểu diễn cụ thể khái niệm tên lớp ln danh từ Các thuộc tính lớp thành phần liệu nên chúng danh từ Các hàm thành phần (các hành vi) thao tác rõ hoạt động lớp nên hàm động từ 09/03/2016 40 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Program pick nouns Problem properties Bao gói liệu hành vi thành class pick verbs 09/03/2016 Operation (function, method, behavior) class XX { type1 prop1; type2 prop2; type Method1( ) { } }; void main() { XX x; // object variable x.Method( ); } 41 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Các thuộc tính suy diễn từ thuộc tính khác nên dùng hàm thành phần để thực tính toán class TamGiac{ class TamGiac{ Diem A,B,C; Diem A,B,C; double ChuVi; public: double DienTich; // public: double ChuVi() const; // double DienTich() const; }; }; 09/03/2016 42 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Tuy nhiên, thuộc tính suy diễn dòi hỏi nhiều tài nguyên thời gian để thực tính tốn, ta nên khai báo liệu thành phần class QuocGia{ long DanSo; double DienTich; double TuoiTrungBinh; public: double TinhTuoiTB() const; // }; 09/03/2016 43 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Dữ liệu thành phần nên kết hợp: class TamGiac{ Diem A,B,C; public: // }; class HinhTron{ Diem Tam; double BanKinh; public: // }; 09/03/2016 class TamGiac{ double xA, yA; double xB, yB, xC, yC; public: // }; class HinhTron{ double tx, ty, BanKinh; public: // }; 44 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Trong trường hợp, nên có phương thức thiết lập (Constructor) để khởi động đối tượng Nên có phương thức thiết lập có khả tự khởi động không cần tham số 09/03/2016 45 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Các nguyên tắc xây dựng lớp Nếu đối tượng có nhu cầu cấp phát tài ngun phải có phương thức thiết lập, copy constructor để khởi động đối tượng đối tượng kiểu có destructor để dọn dẹp Ngồi cịn có phép gán (chương 5) Nếu đối tượng đơn giản không cần tài nguyên riêng Không cần copy constructor destructor 09/03/2016 46 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Bài tập Viết chương trình cho phép nhập, xuất, khởi tạo học sinh Thông tin cần quan tâm học sinh: Mã học sinh (8 ký tự), họ tên học sinh (30 ký tự), điểm toán (int), điểm văn (int) Danh từ: Học sinh  cấu trúc HS Động từ:  Nhập hs  Hàm Nhap()  Xuất hs  Hàm Xuat(); 09/03/2016 47 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Q&A CuuDuongThanCong.com https://fb.com/tailieudientucntt ...Nội dung ? ?Đối tượng thành phần lớp ? ?Đối tượng thành phần mảng ? ?Đối tượng cấp phát động ? ?Hàm bạn ? ?Lớp bạn Các nguyên tắc xây dựng lớp 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com... https://fb.com/tailieudientucntt Đối tượng thành phần lớp ? ?Đối tượng thành phần đối tượng khác, đối tượng thuộc lớp “lớn” tạo ra, thành phần tạo 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com... đối tượng thành phần, sau phương thức hủy bỏ đối tượng kết hợp gọi 09/03/2016 Lập trình hướng đối tượng CuuDuongThanCong.com https://fb.com/tailieudientucntt Đối tượng thành phần lớp Nếu đối tượng

Ngày đăng: 26/06/2020, 21:15

Hình ảnh liên quan

Hình thành lớp: Khi ta nghĩ đến “nó” như một - Bài giảng Lập trình hướng đối tượng  Chương 4: Khởi tạo đối tượng hàm bạn và lớp bạn

Hình th.

ành lớp: Khi ta nghĩ đến “nó” như một Xem tại trang 40 của tài liệu.

Từ khóa liên quan

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

Tài liệu liên quan