2 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Nộidung chương 7 7.1 Quan hệ lớp 7.2 Dẫnxuấtvàthừakế 7.3 Hàm ảo và nguyên lý ₫ahình/₫axạ 7.4 Ví dụ thư việnkhốichứcnăng Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m CÁC DẠNG QUAN HỆ LỚP TRONG LẬP TRÌNH NỘI DUNG LẬP TRÌNH: 3 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT 7.1 Phân loạiquanhệ lớp Ví dụ minh họa: Các lớp biểu diễn các hình vẽ trong một chương trình ₫ồ họa —Rectangle — Square — Ellipse — Circle —Line — Polygon — Polyline —Textbox —Group Textbox Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 4 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Biểu ₫ồ lớp (Unified Modeling L anguage) Quan hệ dẫnxuất Quan hệ chứa Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 5 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Các dạng quan hệ lớp (meta model) Class relationship Association Generalization Dependency Aggregation Composition Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 6 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT 7.2 Dẫnxuấtvàthừakế Ví dụ xây dựng các lớp: Rectangle, Square và Textbox (sử dụng lớp Point) Lớpcơ sở Lớpdẫnxuất Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 7 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Thựchiện trong C++: LớpPoint 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()); } Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m 8 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Thựchiện trong C++: LớpRectangle #include <iostream> #include <string> #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; } Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m . V i e w e r w w w . d o c u - t r a c k . c o m CÁC DẠNG QUAN HỆ LỚP TRONG LẬP TRÌNH NỘI DUNG LẬP TRÌNH: 3 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT 7 .1 Phân loạiquanhệ lớp Ví dụ minh họa: Các lớp biểu diễn các. V i e w e r w w w . d o c u - t r a c k . c o m 4 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Biểu ₫ồ lớp (Unified Modeling L anguage) Quan hệ dẫnxuất Quan hệ chứa Click to buy NOW! P D F - X C h a n g e V i e w e r w w w . d o c u - t r a c k . c o m Click. 2 © 2004, HOÀNG MINH SƠN Chương 7: Quan hệ lớp © 2007 AC - HUT Nộidung chương 7 7 .1 Quan hệ lớp 7.2 Dẫnxuấtvàthừakế 7.3 Hàm ảo và nguyên lý ₫ahình/₫axạ 7.4 Ví