Содержание
- 2. Основные принципы ООП Объектно-ориентированное программирование основано на трех важнейших принципах: ИНКАПСУЛЯЦИЯ, НАСЛЕДОВАНИЕ и ПОЛИМОРФИЗМ. ИНКАПСУЛЯЦИЯ -
- 3. Разработать программу, которая создает на экране ряд графических изображений (точки, окружности, линия, квадрат) и может перемещать
- 4. Создание объектов Используются три зарезервированных слова: object, constructor, destructor и три стандартные директивы: private, public и
- 5. Создадим объект-родитель TGraphObject type TGraphObj = object Private {Поля объекта будут скрыты от пользователя} X,Y: Integer;
- 6. Private –скрытие поле и методов “не видимых программисту”. В примере он не может менять координаты точки
- 7. Для описания методов в ООП используются традиционные процедуры и функции, а так же особый вид процедур-
- 8. ТВМ объекта TGraphObj – адрес метода Draw. TGraphObj с родительского метода Draw. В методе Show, вызывается
- 9. Constructor TGraphQbj.Init; var x,y: integer; {Ошибка!} Color: Word; {Ошибка!} begin end; Сообщение о двойном определении переменных
- 10. MoveTo, TGraphObj. MoveTo, TPoint.Draw, Init объекта TPoint Если вызватьTPoint. Draw до вызова Init, его ТВМ не
- 11. В конструкторе TLine.Init для инициации полей Х, У и Color Конструктор TGraph.Init для inherited . Inherited
- 12. Объект TRect удобней породить не от TGraphObj, а от Tline, Init type TRect = object(TLine) Procedure
- 13. Инкапсуляция Инициация(Init) Выполнение работы(Run) Завершение(Done) TPoint и по одному экземпляру TLine, TCircle, TRect TGraphApp в модуле
- 14. Переменные объектного типа могут быть статическими или динамическими, т.е. располагаться в сегменте данных ( статистические) или
- 15. Procedure Run; Procedure Done; Procedure ShowAll; Procedure MoveActiveObj (dX,dY: Integer); end; Implementation Uses Graph, CRT; Procedure
- 16. {Создаем точки} for k := 1 to NPoints do Points [k].Init (Random (GetMaxX) , Random (GetMaxY)
- 17. var Stop: Boolean; {Признак нажатия Esc} const D = 5; {Шаг смещения фигур} begin Stop :=
- 18. #71: MoveAdtiveObj(-D,-D) MoveActiveObj( 0,-D) MoveActiveObj( D,-D) MoveActiveObj(-D, 0) MoveActiveObj( D, 0) MoveActiveObj(-D, MoveActiveObj( 0, MoveActiveObj( D,нажатой
- 19. var k: Integer; begin for k i:= 1 to NPoints do Points[k].Show; Line.Show; Rect.Show; Circ.Show end;
- 21. Скачать презентацию