Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Абстрактный класс Figure




Приведем код класса:

using System; using System.Drawing; namespace Shapes{/// < summary> /// Figure - это абстрактный класс; прародитель семейства /// классов геометрических фигур. Все фигуры имеют: /// центр - center, масштаб - scale. статус/// перетаскивания - dragged center - объект встроенного/// класса (структуры) Point. Этот объект задает характерную/// точку фигуры - чаще всего ее центр (тяжести)/// scale задает масштаб фигуры, первоначально единичный./// drugged = true, когда фигура следует за курсором мыши./// над фигурами определены операции: параллельный/// перенос - Move(a, b) масштабирование - Scale(s)/// Показ фигуры - Show. Область захвата - Region_Capture/// возвращает прямоугольник, характерный для фигуры, /// перетаскивание фигуры возможно при установке курсора /// мыши в области захвата./// < /summary> abstract public class Figure{ /// < summary> /// закрытые для клиентов атрибуты класса - center, scale /// < /summary> protected Point center; protected double scale; protected bool dragged; protected Color color; //Доступ к свойствам public Point center_figure { get{return(center); } get {center = value; } } public double scale_figure { get{return(scale); } get {scale = value; } } public bool dragged_figure { get{return(dragged); } get {dragged = value; } } public Color color_figure { get{return(color); } set {color = value; } } /// < summary> /// базовый конструктор фигур /// < /summary> /// < param name=" x" > координата X характерной точки ///фигуры< /param> /// < param name=" y" > Координата Y характерной точки ///фигуры< /param> public Figure(int x, int y) { center = new Point(x, y); scale = 1; dragged = false; color = Color.ForestGreen; } /// < summary> /// отложенный метод /// Параллельный перенос фигуры на (a, b) /// require: true; /// ensure: для любой точки фигуры p(x, y): /// x = old(x) +a; y = old(y) + b; /// < /summary> /// < param name=" a" > a - перемещение по горизонтали ///вправо < /param> /// < param name=" b" > b - перемещение по вертикали ///вниз< /param> /// Замечание: Для того, чтобы фигура при рисовании была /// полностью видимой, координаты всех ее точек должны /// быть в пределах области рисования. public void Move (int a, int b) { center.X +=a; center.Y += b; } /// < summary> /// изменяет масштаб фигуры /// < /summary> /// < param name=" s" > масштаб изменяется в s раз< /param> public void Scale(double s) { scale*=s; } /// < summary> /// рисование фигуры в окне, передающем объекты g и pen /// < /summary> /// < param name=" g" > графический объект, методы которого /// рисуют фигуру< /param> /// < param name=" pen" > перо рисования< /param> public abstract void Show(Graphics g, Pen pen, Brush brush); public abstract System.Drawing.Rectangle Region_Capture(); }

Абстрактный класс, относящийся к этапу проектирования системы, вместе с тем является важнейшим элементом заключительного семейства классов. В этом проявляется мощь объектно-ориентированного подхода к разработке программных систем. Заметьте, на данном уровне большая часть текста представляет документацию, являющуюся неотъемлемой частью программного проекта. Документация записана в тегах < summary>, что позволяет автоматически ее извлечь и сохранить в виде XML-отчета.


Данная страница нарушает авторские права?





© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.