Programming with Objects and Classes/ru

From Lazarus wiki
Jump to navigationJump to search

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. Чтобы получить наибольшую выгоду от ООП, нужно изучить довольно большие библиотеки классов, что может повлечь за собой крутой подъём в обучении. У ООП, при поддержки большого объёма кода программ, есть как свои преимущества, так и свои недостатки по сравнению с процедурным кодом. Есть много источников для изучения объектноориентированного анализа, разработки и методик программирования, которые лежат вне области этого руководства.

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 methods. The following wiki pages provide a starting point for discovering more about analysis, design and programming in an object orient manner.

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://en.wikipedia.org/wiki/OOAD

http://en.wikipedia.org/wiki/Object_oriented_design