intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Ôn tập Lập trình hướng đối tượng (OOP)

Chia sẻ: Lavie Lavie | Ngày: | Loại File: PPT | Số trang:15

288
lượt xem
33
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Ôn tập Lập trình hướng đối tượng (OOP) sau đây bao gồm những nội dung về C++ vs. C; khai báo lớp; toán tử; kế thừa đa hình và đóng gói; sơ đồ lớp theo UML; Template. Mời các bạn tham khảo bài giảng để bổ sung thêm kiến thức về lĩnh vực này.

Chủ đề:
Lưu

Nội dung Text: Bài giảng Ôn tập Lập trình hướng đối tượng (OOP)

  1. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG (OOP) ÔN TẬP
  2. NỘI DUNG • C++ vs. C • Khai báo lớp • Toán tử • Kế thừa Đa hình và đóng gói • Sơ đồ lớp theo UML • Template • Các khái niệm: public, protected, private, tính đóng gói và che dấu thông tin, static, overload, override, lớp cơ sở trừu tượng, phương thức thuần ảo, phương thức khởi tạo, hủy, truy vấn, xử lý… 11/28/15 Ôn Tập Lập Trình Hướng Đối 2 of 15 Tượng
  3. C++ vs. C • Hai sự mở rộng của C++ so với C: – Sự mở rộng thứ nhất: xuất nhập chuẩn, tham chiếu, chồng hàm và toán tử new và delete – Sự mở rộng thứ hai: hỗ trợ lập trình hướng đối tượng • Kế thừa: lớp con được thừa huởng tất cả từ lớp cha. • Đa hình: dùng phương thức ảo • Đóng gói: sử dụng các phạm vi truy xuất protected và private để che dấu thông tin và các chi tiết cài đặt. 11/28/15 Ôn Tập Lập Trình Hướng Đối 3 of 15 Tượng
  4. Khai báo lớp PhanSo PhanSo::operator + (PhanSo b) const { class PhanSo { return PhanSo(tu*b.mau + mau*b.tu, mau*b.mau); long tu, mau; } void UocLuoc(); public: PhanSo(long t = 0, long m = 1) {SetTu(t);SetMau(m)} void setTu(long t); long getTu() const{return tu;} void setMau(long m); long getMau() const{return mau;} PhanSo operator + (PhanSo ps1) const; friend PhanSo operator - (PhanSo ps1, PhanSo ps2) const; PhanSo operator -() const {return PhanSo(-tu,mau);} friend istream& operator >> (istream &is, PhanSo &p); friend ostream& operator
  5. Khai báo lớp class String { char *p; public: String(char *s = "") {p = strdup(s);} String(const String &s) {p = strdup(s.p);} ~String() {delete [] p;} String & operator = (const String &s); void Output() const {cout
  6. Toán Tử • Toán tử > phải khai báo dạng hàm toàn cục. • Ép kiểu: dùng phương thức thiết lập hoặc toán tử chuyển kiểu. 11/28/15 Ôn Tập Lập Trình Hướng Đối 6 of 15 Tượng
  7. Kế thừa và đa hình class Nguoi { protected: char *HoTen; int NamSinh; public: Nguoi(char *ht, int ns):NamSinh(ns) {HoTen = strdup(ht);} ~Nguoi() {delete [] HoTen;} void An() const { cout
  8. Kế thừa và đa hình class CongNhan : public Nguoi { protected: double MucLuong; public: CongNhan(char *n, double ml, int ns) : Nguoi(n,ns), MucLuong(ml) { } void Xuat() const { cout
  9. Kế thừa và đa hình class SinhVien : public Nguoi { protected: char *MaSo; public: SinhVien(char *n, char *ms, int ns) : Nguoi(n,ns) { MaSo = strdup(ms);} ~SinhVien() {delete [] MaSo;} void Xuat() const { cout
  10. Kế thừa và đa hình void XuatDs(int n, Nguoi *an[]) { for (int i = 0; i < n; i++) { an[i]->Xuat(); cout
  11. Sơ đồ lớp UML • Xác định các lớp: – Tên lớp – Thuộc tính – Phương thức – Tầm vực của các thuôc tính và phương thức • Xác định mối quan hệ giữa các lớp – Kết hợp: “has a” – Tổng quát hóa: “is a” – Phụ thuộc – Realization – Bản số 11/28/15 Ôn Tập Lập Trình Hướng Đối 11 of 15 Tượng
  12. Phân tích sơ đồ lớp • Lớp: – Tên lớp – Thuộc tính – Phương thức 11/28/15 Ôn Tập Lập Trình Hướng Đối 12 of 15 Tượng
  13. Sơ đồ lớp UML SavingAcount is a kind of Account.  Mối quan hệ tổng quát hóa CurrentAccount is also a kind of Account.  Mối quan hệ tổng quát hóa Account has a (contains) number of Transaction.  Mối quan hệ cấu thành Composition 11/28/15 Ôn Tập Lập Trình Hướng Đối 13 of 15 Tượng
  14. Template • Hai loại khuôn mẫu cơ bản: – Function template – khuôn mẫu hàm cho phép định nghĩa các hàm tổng quát dùng đến các kiểu dữ liệu tuỳ ý – Class template – khuôn mẫu lớp cho phép định nghĩa các lớp tổng quát dùng đến các kiểu dữ liệu tuỳ ý • Ba loại tham số của template: – Tham số chỉ ra kiểu dữ liệu tùy ý. • template – Tham số là kiểu dữ liệu thật sự • template – Tham số là một template • template< typename Key, typename Value, template Container> 11/28/15 Ôn Tập Lập Trình Hướng Đối 14 of 15 Tượng
  15. Template template template class Stack { public: void swap(T & a, T & b) { Stack(); T temp; ~Stack(); temp = a; a = b; b = void push(const T& i); temp; void pop(T& i); } bool isEmpty() const; template< typename Key, typename Value, bool isFull() const; template private: Container> static const int max = M; class Map { ... T contents[max]; private: int current; Container keys; }; Container values; ... }; 11/28/15 Ôn Tập Lập Trình Hướng Đối 15 of 15 Tượng
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2