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
| Old | New | Line | |
|---|---|---|---|
| 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 |
