Найти тему
JavAKnazzz

Java. Что такое ООП

Оглавление

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

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

Класс — это описание еще не созданного объекта, как бы общий шаблон, состоящий из полей, методов и конструктора, а объект – экземпляр класса, созданный на основе этого описания.

Основные принципы ООП

  1. Инкапсуляция - сокрытие реализации.
  2. Наследование - создание новой сущности на базе уже существующей.
  3. Полиморфизм - возможность иметь разные формы для одной и той же сущности.
  4. Абстракция - отделение концепции от ее экземпляра.

В чем заключаются преимущества и недостатки объектно-ориентированного подхода в программировании?

Преимущества:

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

Недостатки:

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