Объектно-ориентированное программирование: различия между версиями
Содержимое удалено Содержимое добавлено
Удалена несоответствующая истине информация о невозможности создания объекта не стеке в VS 2008. |
Freezeman (обсуждение | вклад) |
||
Строка 2:
== Общие замечания ==
Объектно-ориентированная парадигма программирования не нова. Её истоки восходят к Симуле-67, хотя первая полная реализация была в Smalltalk-80. ООП стало популярным во второй половине 80-х в таких различных языках, как Си-плюс-плюс, Objective C (другое расширение C), Object и Турбо Паскаль (Turbo Pascal), CLOS (ОО-расширение Лиспа), Eiffel, Ада (в её последних воплощениях) и недавно - в Яве (Java). Эта работа сосредоточена на Си-плюс-плюс (C++), Обджект Паскале (Object Pascal) и Яве (Java), иногда упоминая и другие языки.
Ключевые черты ООП хорошо известны
#Первая — '''инкапсуляция''' — это определение классов — пользовательских типов данных, объединяющих своё содержимое в единый тип и реализующих некоторые операции или методы над ним. Классы обычно являются основой модульности, инкапсуляции и абстракции данных в языках ООП. #Вторая ключевая черта, — '''наследование''' — есть способ определения нового типа, наследуя элементы (содержание и методы) существующего и модифицируя или расширяя их. Это способствует выражению специализации и генерализации.
#Третья черта, известная как '''полиморфизм''', позволяет единообразно ссылаться на объекты различных классов (обычно внутри некоторой иерархии). Это делает классы ещё более удобными и делает программы, основанные на них, легче для расширения и поддержки.
Инкапсуляция, наследование и полиморфизм — фундаментальные свойства, требуемые от языка, претендующего называться объектно-ориентированным
== Контроль во время компиляции и во время выполнения ==
|