Difference between revisions of "Programming with Objects and Classes/ru"

From Lazarus wiki
Jump to navigationJump to search
m (categories)
 
(5 intermediate revisions by 2 users not shown)
Line 7: Line 7:
 
FPC включает в себя некоторые расширения языка в дополнение к "стандартному" синтаксису Pascal для поддержки объектно-ориентированного программирования.   
 
FPC включает в себя некоторые расширения языка в дополнение к "стандартному" синтаксису Pascal для поддержки объектно-ориентированного программирования.   
  
* Objects    (chapter 5)   [[Programming Using Objects]]
+
* Объекты (глава 5) [[Programming Using Objects]]
* Classes    (chapter 6) [[Programming Using Classes]]
+
* Классы (главаr 6) [[Programming Using Classes]]
* Interfaces (chapter 7) [[Programming Using Interfaces]]
+
* Интерфейсы (глава 7) [[Programming Using Interfaces]]
* Generics  (chapter 8) [[Programming Using Generics]]
+
* Универсальные шаблоны (глава 8) [[Programming Using Generics]]
  
Эти расширения описаны в главах документации по FPC - "Руководство по языку": http://www.freepascal.org/docs.var. Ссылки на страницы учебника для каждого понятия указаны выше. "Руководство по языку" имеет синтаксические диаграммы и другие детали, которые не включены в эту вводную статью. Из четырёх упомянутых выше особенностей языка, '''Objects''' и '''Classes''' - это базовые формы объектно-ориентированного программирования (ООП) в FPC и Lazarus.  Для тех, кто не очень хорошо знаком с ООП, глава '''Objects''' включает в себя наиболее общие концепции, а глава '''Classes''', минимизируя повторения, подчёркивает общие черты и различия с синтаксисом '''Objects'''. В общем случае '''Classes''' имеют наиболее частое применение, как у разработчиков Delphi, так и у разработчиков Lazarus. Часто слово "объект" фактически является "классом" в '''Classes''' диалекте ООП в FPC. Эти документы будут формулироваться так, чтобы минимизировать беспорядок в терминологии, но за пределами этого документа, термин "объект" часто относится к объектам-переменным, которые созданы на основе класса. Фактически FPC имеет библиотеку времени выполнения (RTL), включающую библиотеку классов основынных на классе с именем "TObject".
+
Эти расширения описаны в главах документации по FPC - "Руководство по языку": http://www.freepascal.org/docs.var. Ссылки на страницы учебника для каждого понятия указаны выше. "Руководство по языку" имеет синтаксические диаграммы и другие детали, которые не включены в эту вводную статью. Из четырёх упомянутых выше особенностей языка, '''Объекты''' и '''Классы''' - это базовые формы объектно-ориентированного программирования (ООП) в FPC и Lazarus.  Для тех, кто не очень хорошо знаком с ООП, глава '''Объекты''' включает в себя наиболее общие концепции, а глава '''Классы''', минимизируя повторения, подчёркивает общие черты и различия с синтаксисом '''Объекты'''. В общем случае '''Классы''' имеют наиболее частое применение, как у разработчиков Delphi, так и у разработчиков Lazarus. Часто слово "объект" фактически является "классом" в '''Classes''' диалекте ООП в FPC. Эти документы будут формулироваться так, чтобы минимизировать беспорядок в терминологии, но за пределами этого документа, термин "объект" часто относится к объектам-переменным, которые созданы на основе класса. Фактически FPC имеет библиотеку времени выполнения (RTL), включающую библиотеку классов основынных на классе с именем "TObject".
  
Пользователи, которые знакомы только с ООП TurboPascal, могут сначала пропустить главу о классах, т.к. работа собъектами основана на на диалекте старого Turbo Pascal. Глава о классах заинтересует пользователей Delphi, т.к. основана на синтаксисе Delphi.  Часть из того, что написано в главе '''Classes''' может отсылать к понятиям из главы '''Objects'''. Для разработчиков Макинтош, знакомых с различными вариантами Apple, THINK и диалектами MPW Object Pascal, ничто из FPC объектов или классов не обеспечит прямой путь миграции. На март 2009 года, велись дискуссии в списке рассылок Mac Pascal об оказании некоторой поддержки компилятором (новый синтаксис) для доступа к рабочей среде Apple's Objective C / Cocoa.
+
Пользователи, которые знакомы только с ООП TurboPascal, могут сначала пропустить главу о классах, т.к. работа собъектами основана на на диалекте старого Turbo Pascal. Глава о классах заинтересует пользователей Delphi, т.к. основана на синтаксисе Delphi.  Часть из того, что написано в главе '''Классы''' может отсылать к понятиям из главы '''Объекты'''. Для разработчиков Макинтош, знакомых с различными вариантами Apple, THINK и диалектами MPW Object Pascal, ничто из FPC объектов или классов не обеспечит прямой путь миграции. На март 2009 года велись дискуссии в списке рассылок Mac Pascal об оказании некоторой поддержки компилятором (новый синтаксис) доступа к рабочей среде Apple's Objective C / Cocoa.
  
 
== Основные понятия ==
 
== Основные понятия ==
  
ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с ситемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" Pascal. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении.  У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.   
+
ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с сиcтемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" Pascal. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении.  У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.   
  
There are numerous programming languages which incorporate OOP features as extensions or the basis of their language. As such, there are many different terms for describing OO concepts.   Even within FPC, some of the terminology overlaps. In general, OOP usually consists of the concept of a programming object (or information unit) which explicitly combines and encapsulates a related set of data and procedures which act on the data.   This data is usually persistent during program execution but with mechanisms to reduce some of the problems inherent in declaring global variables.   In addition, OOP languages enable objects to be incrementally modified and/or extended based on previously defined objects. This feature is usually referred to by the terms ''inheritance'' and ''polymorphism''.     Many OOP languages use  the terms ''method'' or ''message'' referring to procedures which belong to an object.   Much of the power of OOP is realized by late (run time) dynamic binding of methods rather than compile binding.   This dynamic binding of methods is similar to using procedural variables and procedural parameters but with greater syntactic cohesion, encapsulation with the data it is related to and also inheritance of behavior of previously defined methodsThe following wiki pages provide a starting point for discovering more about analysis, design and programming in an object orient manner.
+
Есть многочисленные языки программирования, которые включают возможности ООП как расширения или как основание этого языка. Как следствие, есть много различных терминов для того, чтобы описать понятия OO. Даже в пределах FPC есть некоторые наложения в терминологии. В основном, ООП обычно состоит из понятия программного объекта (или информационной единицы), который включает в себя связанный набор данных и процедур, которые обрабатывают данные. Эти данные обычно являются постоянными на время выполнения программы, но с механизмами уменьшающими некоторые из проблем, порождённых из-за объявления глобальных переменных. Кроме того языки ООП позволяют объектам быть изменяемыми и/или расширяемыми на основании ранее определённых объектах. Эта особенность обычно определяется терминами "наследование" и "полиморфизм". Многие из языков ООП используют термины "метод" или "сообщение", ссылающееся на процедуры, которые принадлежат объекту. Большая часть мощи ООП основана на позднем (во время выполнения) динамическом связывании методов, а не статическом связывании при компиляции. Это динамическое связывание методов подобно использованию процедурных переменных и процедурных параметров, но с большим синтаксическим единством, инкапсулирующим связанные с ними данные и, также, наследующие поведение ранее определённых методовСледующие страницы wiki обеспечивают отправную точку для того, чтобы узнать больше о проектировании и программировании в объектноориентированной манере:
  
[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 Объектно-ориентированное программирование]
+
*[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 Объектно-ориентированное программирование]
 +
*[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 Объектно-ориентированное проектирование]
 +
*http://en.wikipedia.org/wiki/Object_oriented_design
  
[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 Объектно-ориентированное проектирование]
 
  
http://en.wikipedia.org/wiki/Object_oriented_design
+
{{AutoCategory}}
 +
[[Category: FPC/ru]]
 +
[[Category: Lazarus/ru]]
 +
[[Category:Object-oriented development/ru]]

Latest revision as of 19:41, 13 May 2015

English (en) français (fr) русский (ru)

Программирование с помощью объектов и классов

Краткий обзор

FPC включает в себя некоторые расширения языка в дополнение к "стандартному" синтаксису Pascal для поддержки объектно-ориентированного программирования.

Эти расширения описаны в главах документации по FPC - "Руководство по языку": http://www.freepascal.org/docs.var. Ссылки на страницы учебника для каждого понятия указаны выше. "Руководство по языку" имеет синтаксические диаграммы и другие детали, которые не включены в эту вводную статью. Из четырёх упомянутых выше особенностей языка, Объекты и Классы - это базовые формы объектно-ориентированного программирования (ООП) в FPC и Lazarus. Для тех, кто не очень хорошо знаком с ООП, глава Объекты включает в себя наиболее общие концепции, а глава Классы, минимизируя повторения, подчёркивает общие черты и различия с синтаксисом Объекты. В общем случае Классы имеют наиболее частое применение, как у разработчиков Delphi, так и у разработчиков Lazarus. Часто слово "объект" фактически является "классом" в Classes диалекте ООП в FPC. Эти документы будут формулироваться так, чтобы минимизировать беспорядок в терминологии, но за пределами этого документа, термин "объект" часто относится к объектам-переменным, которые созданы на основе класса. Фактически FPC имеет библиотеку времени выполнения (RTL), включающую библиотеку классов основынных на классе с именем "TObject".

Пользователи, которые знакомы только с ООП TurboPascal, могут сначала пропустить главу о классах, т.к. работа собъектами основана на на диалекте старого Turbo Pascal. Глава о классах заинтересует пользователей Delphi, т.к. основана на синтаксисе Delphi. Часть из того, что написано в главе Классы может отсылать к понятиям из главы Объекты. Для разработчиков Макинтош, знакомых с различными вариантами Apple, THINK и диалектами MPW Object Pascal, ничто из FPC объектов или классов не обеспечит прямой путь миграции. На март 2009 года велись дискуссии в списке рассылок Mac Pascal об оказании некоторой поддержки компилятором (новый синтаксис) доступа к рабочей среде Apple's Objective C / Cocoa.

Основные понятия

ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с сиcтемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" Pascal. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении. У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.

Есть многочисленные языки программирования, которые включают возможности ООП как расширения или как основание этого языка. Как следствие, есть много различных терминов для того, чтобы описать понятия OO. Даже в пределах FPC есть некоторые наложения в терминологии. В основном, ООП обычно состоит из понятия программного объекта (или информационной единицы), который включает в себя связанный набор данных и процедур, которые обрабатывают данные. Эти данные обычно являются постоянными на время выполнения программы, но с механизмами уменьшающими некоторые из проблем, порождённых из-за объявления глобальных переменных. Кроме того языки ООП позволяют объектам быть изменяемыми и/или расширяемыми на основании ранее определённых объектах. Эта особенность обычно определяется терминами "наследование" и "полиморфизм". Многие из языков ООП используют термины "метод" или "сообщение", ссылающееся на процедуры, которые принадлежат объекту. Большая часть мощи ООП основана на позднем (во время выполнения) динамическом связывании методов, а не статическом связывании при компиляции. Это динамическое связывание методов подобно использованию процедурных переменных и процедурных параметров, но с большим синтаксическим единством, инкапсулирующим связанные с ними данные и, также, наследующие поведение ранее определённых методов. Следующие страницы wiki обеспечивают отправную точку для того, чтобы узнать больше о проектировании и программировании в объектноориентированной манере: