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

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

33 533 2

Đ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 33
Dung lượng 385,65 KB

Nội dung

© 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

w