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

From Free Pascal wiki
Jump to navigationJump to search
Line 20: Line 20:
 
ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с ситемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" Pascal. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении.  У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.   
 
ООП обеспечивает различные пути управления и инкапсуляции данных, и управление процессом выполнения программы по сравнению с другими доступными особенностями и конструкциями языка. ООП часто заявляет себя при разработке определённых частей программ таких как Графический Интерфейс Пользователя (GUI) и работы с ситемами в более естественном виде. Однако ООП не является оптимальным для всех приложений. Контроль за программой не является столь уж явным, по сравнению с процедурными конструкциями "стандартного" 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 есть некоторые наложения в терминологии. В основном, ООП обычно состоит из понятия программного объекта (или информационной единицы), который включает в себя связанный набор данных и процедур, которые обрабатывают данные. Эти данные обычно являются постоянными на время выполнения программы, но с механизмами уменьшающими некоторые из проблем, порожденных из-за объявления глобальных переменных. Кроме того языки ООП позволяют объектам быть измененяемыми и/или расширяемыми на основании ранее определенных объектах. Эта особенность обычно определяется терминами "наследование" и "полиморфизм". Многие из языков ООП используют термины "метод" или "сообщение", ссылающееся на процедуры, которые принадлежат объекту. Большая часть мощи ООП основана на позднем (во время выполнения) динамическом связывании методов, а не статическом связывании при компиляции. Это динамическое связывание методов подобно использованию процедурных переменных и процедурных параметров, но с большим синтаксическим единством, encapsulation with the data it is related to и также наследуют поведение ранее определенных методовСледующие страницы 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://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://en.wikipedia.org/wiki/Object_oriented_design
 

Revision as of 07:37, 21 July 2010

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

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

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

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

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

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

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

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