Sign in Join
Wiki copytemporary

Programming with Objects and Classes/ru: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: Programming with Objects and Classes/ru

OldNewLine
1+# Программирование с помощью объектов и классов
2+
3+## Краткий обзор
4+
5+FPC включает в себя некоторые расширения языка в дополнение к "стандартному" синтаксису Pascal для поддержки объектно-ориентированного программирования.
6+
7+- Объекты (глава 5) [[Programming Using Objects]]
8+- Классы (главаr 6) [[Programming Using Classes]]
9+- Интерфейсы (глава 7) [[Programming Using Interfaces]]
10+- Универсальные шаблоны (глава 8) [[Programming Using Generics]]
11+
12+Эти расширения описаны в главах документации по FPC - "Руководство по языку": <http://www.freepascal.org/docs.var>. Ссылки на страницы учебника для каждого понятия указаны выше. "Руководство по языку" имеет синтаксические диаграммы и другие детали, которые не включены в эту вводную статью. Из четырёх упомянутых выше особенностей языка, **Объекты** и **Классы** - это базовые формы объектно-ориентированного программирования (ООП) в FPC и Lazarus. Для тех, кто не очень хорошо знаком с ООП, глава **Объекты** включает в себя наиболее общие концепции, а глава **Классы**, минимизируя повторения, подчёркивает общие черты и различия с синтаксисом **Объекты**. В общем случае **Классы** имеют наиболее частое применение, как у разработчиков Delphi, так и у разработчиков Lazarus. Часто слово "объект" фактически является "классом" в **Classes** диалекте ООП в FPC. Эти документы будут формулироваться так, чтобы минимизировать беспорядок в терминологии, но за пределами этого документа, термин "объект" часто относится к объектам-переменным, которые созданы на основе класса. Фактически FPC имеет библиотеку времени выполнения (RTL), включающую библиотеку классов основынных на классе с именем "TObject".
13+
14+Пользователи, которые знакомы только с ООП TurboPascal, могут сначала пропустить главу о классах, т.к. работа собъектами основана на на диалекте старого Turbo Pascal. Глава о классах заинтересует пользователей Delphi, т.к. основана на синтаксисе Delphi. Часть из того, что написано в главе **Классы** может отсылать к понятиям из главы **Объекты**. Для разработчиков Макинтош, знакомых с различными вариантами Apple, THINK и диалектами MPW Object Pascal, ничто из FPC объектов или классов не обеспечит прямой путь миграции. На март 2009 года велись дискуссии в списке рассылок Mac Pascal об оказании некоторой поддержки компилятором (новый синтаксис) доступа к рабочей среде Apple's Objective C / Cocoa.
15+
16+## Основные понятия
17+
18+ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с сиcтемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" Pascal. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении. У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.
19+
20+Есть многочисленные языки программирования, которые включают возможности ООП как расширения или как основание этого языка. Как следствие, есть много различных терминов для того, чтобы описать понятия OO. Даже в пределах FPC есть некоторые наложения в терминологии. В основном, ООП обычно состоит из понятия программного объекта (или информационной единицы), который включает в себя связанный набор данных и процедур, которые обрабатывают данные. Эти данные обычно являются постоянными на время выполнения программы, но с механизмами уменьшающими некоторые из проблем, порождённых из-за объявления глобальных переменных. Кроме того языки ООП позволяют объектам быть изменяемыми и/или расширяемыми на основании ранее определённых объектах. Эта особенность обычно определяется терминами "наследование" и "полиморфизм". Многие из языков ООП используют термины "метод" или "сообщение", ссылающееся на процедуры, которые принадлежат объекту. Большая часть мощи ООП основана на позднем (во время выполнения) динамическом связывании методов, а не статическом связывании при компиляции. Это динамическое связывание методов подобно использованию процедурных переменных и процедурных параметров, но с большим синтаксическим единством, инкапсулирующим связанные с ними данные и, также, наследующие поведение ранее определённых методов. Следующие страницы wiki обеспечивают отправную точку для того, чтобы узнать больше о проектировании и программировании в объектноориентированной манере:
21+
22+- [Объектно-ориентированное программирование](http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
23+- [Объектно-ориентированное проектирование](http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82%D0%BD%D0%BE-%D0%BE%D1%80%D0%B8%D0%B5%D0%BD%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5)
24+- <http://en.wikipedia.org/wiki/Object_oriented_design>
25+
26+---
27+*From the Free Pascal wiki, page "Programming with Objects and Classes/ru", as it stood on 2015-05-13 after a change by FTurtle, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*
28+Category: FPC/ru
29+Category: Lazarus/ru
30+Category: Object-oriented development/ru
31+Category: Russian

Back to history