Файл: Основные понятия объектно-ориентированного программирования (Основные понятия объектно-ориентированного программирования).pdf
Добавлен: 01.04.2023
Просмотров: 121
Скачиваний: 2
СОДЕРЖАНИЕ
1. Основные понятия объектно-ориентированного программирования
2. Объект - как базовое понятие в объектно-ориентированном программировании
2.1 Первый принцип объектно-ориентированного программирования - ИНКАПСУЛЯЦИЯ
2.2 Второй принцип объектно-ориентированного программирования - НАСЛЕДОВАНИЕ
2.3 Третий принцип объектно-ориентированного программирования - ПОЛИМОРФИЗМ
3. Процесс объектно-ориентированного проектирования
4. Объектно-ориентированные языки
5. Простая объектная модель и ссылочно-объектная модель
Python — высокоуровневый язык программирования общего назначения, поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное, императивное и аспектно-ориентированное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, полная интроспекция, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Python организовывается в функции и классы, которые могут объединяться в модули (они в свою очередь могут быть объединены в пакеты).
Эталонной реализацией Python является интерпретатор CPython, поддерживающий большинство активно используемых платформ. Он распространяется под свободной лицензией Python Software Foundation License, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные. Есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции), LLVM и других. Проект PyPy предлагает реализацию Python с использованием JIT-компиляции, которая значительно увеличивает скорость выполнения Python-программ.
Python — активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют стандарт ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.
В свете вышесказанного, можно сделать вывод, что язык программирования имеет в том числе и парадигму объектно-ориентированного, если :
- он поддерживает абстрактные типы данных (объекты с определенным интерфейсом и скрытым внутренним состоянием);
- объекты имеют связанные с ними типы (классы);
- поддерживается механизм наследования.
5. Простая объектная модель и ссылочно-объектная модель
Третий элемент, по которому различаются языки объектно-ориентированного программирования - их объектная модель. Некоторые традиционные языки объектно-ориентированного программирования позволяют программистам создавать объекты в стеке, в куче (в хипе - heap) или в статической памяти. В этих языках переменная типа класс соответствует объекту в памяти. Например, так работает C++.
В последнее время появилась тенденция использовать другую модель, часто называемую ссылочно-объектной моделью. В этой модели каждый объект динамически размещается в куче, а переменная типа класс фактически является ссылкой или хэндлом объекта в памяти (технически это нечто вроде указателя). Java и Object Pascal оба используют эту ссылочную модель. Это значит, что необходимо не забыть выделить память для объекта.
6. Языки программирования и программное окружение
Сравнивая синтаксические и семантические характеристики, важно рассматривать их в соответствующем контексте. Языки программирования нацелены на различные потребности. Они решают задачи разными способами и используются в различных средах программирования. Языки программирования и их среда имеют схожие характеристики друг друга, но сконструированы для разных потребностей.
Преимущество C++ - мощность и контроль за счет сложности. Преимущество Delphi является легкое, визуальное и прочная связь с Windows. Преимущество Java - мобильность, даже за счет некоторого отказа от скорости, и распределённые приложения или исполняемое содержание.
Заключение
На данный момент сложилось множество парадигм программирования. В свое время процедурное программирование сменилось структурным программированием, а затем и модульным. Объектно-ориентированное программирование возникло в результате развития идеологии процедурного программирования. В настоящее время количество прикладных языков программирования, реализующих объектно-ориентированную парадигму, является наибольшим по отношению к другим парадигмам. Наиболее распространённые в промышленности языки (С++, Delphi, C#, Java и др.) воплощают объектную модель Симулы. Примерами языков, опирающихся на модель Смолтока, являются Objective-C, Python, Ruby
Многие современные языки специально созданы для облегчения объектно-ориентированного программирования. Однако следует отметить, что можно применять техники ООП и для не-объектно-ориентированного языка и наоборот, применение объектно-ориентированного языка вовсе не означает, что код автоматически становится объектно-ориентированным.
Объектно-ориентированное программирование является в настоящее время основой всей индустрии прикладного программирования благодаря выигрышу в конкурентной борьбе с альтернативными технологиями программирования. В промышленном программировании только в системном программировании позиции объектно-ориентированного программирования еще не очень сильны.
Поэтому, с одной стороны, теоретические рассуждения о непригодности объектно-ориентированного программирования не соответствуют наблюдаемой на практике ситуации. С другой стороны, нельзя считать, что объектно-ориентированное программирование во всех случаях является наилучшей из методик программирования.