Не обнаружил проекты, которые используются в примерах в лекции, также не увидел список задач. |
Опубликован: 22.11.2005 | Уровень: специалист | Доступ: свободно | ВУЗ: Тверской государственный университет
Лекция 25:
Финальный проект
Класс Ellipse
Вот программный код этого класса:
using System; using System.Drawing; namespace Shapes { /// <summary> /// Класс Ellipse - потомок класса Figure. /// </summary> public class Ellipse: Figure { int axisA,axisB; Rectangle rect; public Ellipse(int A, int B, int x, int y ): base(x,y) { axisA = A; axisB = B; rect =Init(); } public override void Show(Graphics g, Pen pen, Brush brush) { rect = Init(); g.DrawEllipse(pen,rect); g.FillEllipse(brush, rect); } public override Rectangle Region_Capture() { rect = Init(); return rect; } Rectangle Init() { int a =Convert.ToInt32(axisA*scale); int b =Convert.ToInt32(axisB*scale); int leftupX = center.X - a; int leftupY = center.Y - b; return( new Rectangle(leftupX,leftupY,2*a,2*b)); } } }
Класс Circle
Этот класс является потомком класса Ellipse:
using System; using System.Drawing; namespace Shapes { /// <summary> /// Класс Circle - потомок класса Ellipse. /// </summary> public class Circle: Ellipse { public Circle( int radius,int x, int y):base(radius,radius,x,y) { //Круг - это эллипс с равными полуосями (радиусом круга) } } }
Здесь опять-таки проявляется мощь наследования. Потомок наследует все свойства и методы родителя. Ему остается только указать собственный конструктор объектов класса, да и в нем главное состоит в вызове конструктора родительского класса с передачей ему нужных аргументов.
Класс LittleCircle
Этот класс, задающие маленькие кружочки фиксированного радиуса, в свою очередь, является наследником класса Circle. Устроен он также чрезвычайно просто:
using System; namespace Shapes { /// <summary> /// Класс LittleCircle - потомок класса Circle. /// </summary> public class LittleCircle:Circle { public LittleCircle(int x,int y): base(4,x,y) { // маленький круг радиуса 4 } } }
Класс Rect
Этот класс является еще одним прямым потомком класса Figure:
using System; using System.Drawing; namespace Shapes { /// <summary> /// Класс Rect - потомок класса Figure. /// </summary> public class Rect:Figure { int sideA, sideB; Rectangle rect; public Rect(int sideA,int sideB, int x, int y): base(x,y) { this.sideA = sideA; this.sideB = sideB; rect =Init(); } public override void Show(Graphics g, Pen pen, Brush brush) { rect = Init(); g.DrawRectangle(pen,rect); g.FillRectangle(brush,rect); } public override Rectangle Region_Capture() { rect = Init(); return rect; } Rectangle Init() { int a =Convert.ToInt32(sideA*scale); int b =Convert.ToInt32(sideB*scale); int leftupX = center.X - a/2; int leftupY = center.Y - b/2; return( new Rectangle(leftupX,leftupY,a,b)); } } }
Класс Square
Квадрат - это частный случай прямоугольника. Соответствующий класс является потомком класса Rect:
using System; namespace Shapes { /// <summary> /// Класс Square - потомок класса Rect. /// </summary> public class Square:Rect { public Square(int side, int x, int y): base(side,side,x,y) { //квадрат - это прямоугольник с равными сторонами } } }