Tài liệu Kỹ thuật lập trình - Chương 7: Quan hệ lớp docx

33 532 2
Tài liệu Kỹ thuật lập trình - Chương 7: Quan hệ lớp docx

Đ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

© 2004, HOÀNG MINH SƠN Chương Kỹ thuật lập trình Chương 7: Quan hệ lớp 0101010101010101100001 0101010101010101100001 StateController 0101010100101010100101 0101010100101010100101 1010011000110010010010 1010011000110010010010 start() 1100101100100010000010 1100101100100010000010 stop() 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 1010011000110010010010+ B*u; 1010011000110010010010 y = A*x 1100101100100010000010+ d*u; 1100101100100010000010 x = C*x LQGController 0101010101010101100001 0101010101010101100001 0101010100101010100101 0101010100101010100101 start() 1010011000110010010010 stop() 1010011000110010010010 1100101100100010000010 1100101100100010000010 12/3/2007 Nội dung chương © 2004, HOÀNG MINH SƠN 7.1 7.2 7.3 7.4 Quan hệ lớp Dẫn xuất thừa kế Hàm ảo nguyên lý ₫a hình/₫a xạ Ví dụ thư viện khối chức Chương 7: Quan hệ lớp © 2007 AC - HUT 7.1 Phân loại quan hệ lớp Ví dụ minh họa: Các lớp biểu diễn hình vẽ chương trình ₫ồ họa — Rectangle — Square Textbox — Ellipse — Circle — Line — Polygon — Polyline © 2004, HOÀNG MINH SƠN — Textbox — Group Chương 7: Quan hệ lớp © 2007 AC - HUT Biểu ₫ồ lớp (Unified Modeling Language) © 2004, HỒNG MINH SƠN Quan hệ dẫn xuất Chương 7: Quan hệ lớp Quan hệ chứa © 2007 AC - HUT Các dạng quan hệ lớp (meta model) Class relationship Generalization Association Dependency © 2004, HỒNG MINH SƠN Aggregation Chương 7: Quan hệ lớp Composition © 2007 AC - HUT 7.2 Dẫn xuất thừa kế Ví dụ xây dựng lớp: Rectangle, Square Textbox (sử dụng lớp Point) Lớp sở © 2004, HỒNG MINH SƠN Lớp dẫn xuất Chương 7: Quan hệ lớp © 2007 AC - HUT Thực C++: Lớp Point © 2004, HỒNG MINH SƠN class Point { int X,Y; public: Point() : X(0), Y(0) {} Point(int x, int y): X(x), Y(y) {} int x() const { return X; } int y() const { return Y; } void move(int dx, int dy) { X += dx; Y += dy; } void operator*=(int r) { X *= r; Y *= r; } }; Point operator-(const Point& P1, const Point& P2) { return Point(P2.x()-P1.x(),P2.y()-P1.y()); } Chương 7: Quan hệ lớp © 2007 AC - HUT Thực C++: Lớp Rectangle © 2004, HỒNG MINH SƠN #include #include #include "Point.h" typedef int Color; class Rectangle { Point TL, BR; Color LineColor, FillColor; int LineSize; public: Point getTL() const { return TL; } Point getBR() const { return BR; } void setTL(const Point& tl) { TL = tl; } void setBR(const Point& br) { BR = br; } Color getLineColor() const { return LineColor; } void setLineColor(Color c) { LineColor = c; } int getLineSize() const { return LineSize; } void setLineSize(int s) { LineSize = s; } Chương 7: Quan hệ lớp © 2007 AC - HUT © 2004, HOÀNG MINH SƠN Rectangle(int x1=0, int y1=0, int x2=10, int y2=10) : TL(x1,y1), BR(x2,y2), LineColor(256),FillColor(0) {} Rectangle(const Point& tl, const Point& br, Color lc, Color fc) : TL(tl), BR(br), LineColor(lc), FillColor(fc) {} void draw() { std::cout thực thi nào? — Một chương trình ứng dụng chứa nhiều kiểu ₫ối tượng (₫ối tượng thuộc lớp khác nhau, có kiểu sở) => quản lý ₫ối tượng nào, danh sách hay nhiều danh sách khác nhau? Chương 7: Quan hệ lớp © 2007 AC - HUT 21 Vấn ₫ề chế "liên kết tĩnh" Xem lại chương trình trước, hàm Rectangle::draw ₫ều in tên "Rectangle" => chưa hợp lý nên cần ₫ược ₫ịnh nghĩa lại lớp dẫn xuất void Square::draw() { std::cout

Ngày đăng: 19/01/2014, 13:20

Từ khóa liên quan

Mục lục

  • Kỹ thuật lập trình

  • Nội dung chương 7

  • 7.1 Phân loại quan hệ lớp

  • Biểu đồ lớp (Unified Modeling Language)

  • Các dạng quan hệ lớp (meta model)

  • 7.2 Dẫn xuất và thừa kế

  • Thực hiện trong C++: Lớp Point

  • Thực hiện trong C++: Lớp Rectangle

  • Thực hiện trong C++: Lớp Square

  • Thực hiện trong C++: Lớp Textbox

  • Chương trình minh họa

  • Truy nhập thành viên

  • Thuộc tính truy nhập kế thừa

  • Ví dụ

  • Chuyển đổi kiểu đối tượng

  • Chuyển đổi kiểu đối tượng

  • 7.3 Hàm ảo và cơ chế đa hình/đa xạ

  • Vấn đề của cơ chế "liên kết tĩnh"

  • Chương trình minh họa 1

  • Kết quả: Như ý muốn?

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

Tài liệu liên quan