1. Trang chủ
  2. » Công Nghệ Thông Tin

Chuong 04 viec khoi tao doi tuong, ham ban, lop ban

48 34 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 48
Dung lượng 1,58 MB

Nội dung

KHỞI TẠO ĐỐI TƯỢNG HÀM BẠN VÀ LỚP BẠN Khoa Công nghệ phần mềm 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 24/03/2016 Lập trình hướng đối tượng Đố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 24/03/2016 Lập trình hướng đối tượng Đố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 24/03/2016 Lập trình hướng đối tượng Đố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 24/03/2016 Lập trình hướng đối tượng 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); 24/03/2016 Lập trình hướng đối tượng 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); 24/03/2016 Lập trình hướng đối tượng 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; } }; 24/03/2016 Lập trình hướng đối tượng Đối tượng thành phần mảng 24/03/2016 Lập trình hướng đối tượng Đố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ố 24/03/2016 Lập trình hướng đối tượng 10 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 tồn lớp làm bạn (hàm friend) cho lớp khác 24/03/2016 Lập trình hướng đối tượng 34 Ví dụ class TOM{ public: friend class JERRY; private: int SecretTom; }; class JERRY{ public: void Change(TOM T){ T.SecterTom++; } }; 24/03/2016 //Có lớp bạn JERRY //Bí mật TOM //Bạn nên thay Lập trình hướng đối tượng 35 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ừ 24/03/2016 Lập trình hướng đối tượng 36 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 24/03/2016 Lập trình hướng đối tượng 37 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(); }; 24/03/2016 Lập trình hướng đối tượng 38 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(); }; 24/03/2016 Lập trình hướng đối tượng 39 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ừ 24/03/2016 Lập trình hướng đối tượng 40 Các nguyên tắc xây dựng lớp Program pick nouns Problem Bao gói liệu hành vi thành class pick verbs 24/03/2016 properties Operation (function, method, behavior) class XX { type1 prop1; type2 prop2; type Method1( ) { } }; void main() { XX x; // object variable x.Method( ); } Lập trình hướng đối tượng 41 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 tốn class TamGiac{ class TamGiac{ Diem A,B,C; Diem A,B,C; double ChuVi; public: double DienTich; // public: double ChuVi() const; // }; 24/03/2016 double DienTich() const; }; Lập trình hướng đối tượng 42 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; // }; 24/03/2016 Lập trình hướng đối tượng 43 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: // }; 24/03/2016 class TamGiac{ double xA, yA; double xB, yB, xC, yC; public: // }; class HinhTron{ double tx, ty, BanKinh; public: // }; Lập trình hướng đối tượng 44 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ố 24/03/2016 Lập trình hướng đối tượng 45 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ó 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 24/03/2016 Lập trình hướng đối tượng 46 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(); 24/03/2016 Lập trình hướng đối tượng 47 Q&A ... 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... 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ố 24/03/2016 Lập trình hướng... nào? Lớp khơng có phương thức thiết lập Lớp có phương thức thiết lập khơng tham số Lớp có phương thức thiết lập mà tham số có giá trị 24/03/2016 Lập trình hướng đối tượng 11 Đối tượng thành phần

Ngày đăng: 17/03/2020, 15:13

TỪ KHÓA LIÊN QUAN

w