Инструменты пользователя

Инструменты сайта


examination:oop:question11

11. Основные свойства языка ООП. Классификация и номенклатура языков, применение. Место языка C++ во внедрении и развитии средств ООП. Значение языка C++ для профессиональной подготовки программистов.

К основным свойствам объектно-ориентированных языков можно отнести то, что основными понятиями в ООП являются класс и объект.

WTF? Основные свойства - это основные понятия??

Класс является описанием на языке программирования какой-либо сущности, не предоставляемой языком по-умолчанию. Фактически класс описывает устройство объекта, является своего рода чертежом.

Объект - это какая-либо сущность в адресном пространстве, которая строится на основании класса. Причем каждый созданный объект обладает своим набором данных, отделенных от других объектов. Говорят, что объект — это экземпляр класса. В некоторых языках программирования и классы можно считать объектами, порождающими другие объекты (Python).

С++ можно назвать языком программирования, который в наибольшей мере соответствует парадигме ООП. В него входят все основные концепции:

  • Инкапсуляция - все данные относящиеся к объекту находятся внутри объекта, программист может различным образом предоставлять доступ к внутренним данным объектов, описывая некоторые поля как публичные либо предоставляя соответствующие сеттеры и геттеры.
  • Наследование - позволяет избавиться от дублирования общего кода у объектов, посредством наследования.
  • Полиморфизм - за счет наследования, перегрузки функций мы можем получить единый интерфейс для объектов различных классов и работающих по-разному (при условии, что классы этих объектов имеют общий интерфейс)

Языки, появлявшиеся позже, различным образом улучшали концепции языка c++, повышая удобство.

Для профессиональной подготовки программистов язык C++ является важным по причине того, что он включает в себя указанные выше концепции + обладает ручным управлением памятью, что позволяет сформировать у программиста методику работы с ресурсами компьютера.


Объектно-ориентированные языки

Основная статья: Объектно-ориентированный язык программирования Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.

Современный объектно-ориентированный язык предлагает, как правило, следующий обязательный набор синтаксических средств:

  • Объявление классов с полями (данными — членами класса) и методами (функциями — членами класса).
  • Механизм расширения класса (наследования) — порождение нового класса от существующего с автоматическим включением всех особенностей реализации класса-предка в состав класса-потомка. Большинство ООП-языков поддерживают только единичное наследование.
  • Полиморфные переменные и параметры функций (методов), позволяющие присваивать одной и той же переменной экземпляры различных классов.
  • Полиморфное поведение экземпляров классов за счёт использования виртуальных методов. В некоторых ООП-языках все методы классов являются виртуальными.

Видимо, минимальным традиционным объектно-ориентированным языком можно считать язык Оберон, который не содержит никаких других объектных средств, кроме вышеперечисленных (в исходном Обероне даже нет отдельного ключевого слова для объявления класса, а также отсутствуют явно описываемые методы, их заменяют поля процедурного типа). Но большинство языков добавляют к указанному минимальному набору те или иные дополнительные средства. В их числе:

  • Конструкторы, деструкторы, финализаторы.
  • Свойства (аксессоры).
  • Индексаторы.
  • Интерфейсы (например, в Java используются также как альтернатива множественному наследованию — любой класс может реализовать сколько угодно интерфейсов).
  • Переопределение операторов для классов.
  • Средства защиты внутренней структуры классов от несанкционированного использования извне. Обычно это модификаторы доступа к полям и методам, типа public, private, обычно также protected, иногда некоторые другие.

Часть языков (иногда называемых «чисто объектными») целиком построена вокруг объектных средств — в них любые данные (возможно, за небольшим числом исключений в виде встроенных скалярных типов данных) являются объектами, любой код — методом какого-либо класса, и невозможно написать программу, в которой не использовались бы объекты. Примеры подобных языков — Smalltalk, Python, Java, C#, Ruby, AS3. Другие языки (иногда используется термин «гибридные») включают ООП-подсистему в исходно процедурный язык. В них существует возможность программировать, не обращаясь к объектным средствам. Классические примеры — C++, Delphi и Perl. [править]

examination/oop/question11.txt · Последние изменения: 2014/01/15 12:22 (внешнее изменение)