Независимо от языка программирования объектно-ориентированный подход имеет ряд общих принципов, а именно:
- возможность создавать абстрактные типы данных, позволяющая наряду с предопределенными типами данных (такими как integer, bool, double, string) вводить свои собственные типы данных (классы) и объявлять “переменные” таких типов данных (объекты). Создавая свои собственные типы данных, программист оперирует не машинным и терминами (переменная, функция), а объектами реального мира, поднимаясь тем самым на новый абстрактный уровень. Яблоки и людей нельзя умножать друг на друга, однако низкоуровневый код запросто позволит совершить такую логическую ошибку, тогда как при использовании абстрактных типов данных такая операция становится невозможной;
- инкапсуляция, допускающая взаимодействие пользователя с абстрактными типами данных только через их интерфейс и скрывающая внутреннюю реализацию объекта, не допуская влияния на его внутреннее состояние. Память человека ограничена и не может содержать все детали огромного проекта, тогда как использование инкапсуляции позволяет разработать объект и использовать его, не заботясь о внутренней реализации, прибегая толь ко к небольшому числу интерфейсных методов;
- наследование, позволяющее развить существующий абстрактный тип данных – класс, создав на его основе новый класс. При этом новый класс автоматически получает возможности уже существующего абстрактного типа данных. Зачастую абстрактные типы данных слишком сложны, поэтому прибегают к их последовательной разработке, выстраивая иерархию классов от общего к частному;
- полиморфизм, допускающий построение целых цепочек и разветвленных деревьев наследующих друг другу абстрактных типов данных (классов). При этом весь набор классов будет иметь ряд методов с одинаковыми названиями : любой из классов данного дерева гарантированно обладает методом с таким именем. Этот принцип помогает автоматически обрабатывать массивы данных разного типа.
Абстрактные типы данных необходимы для того, чтобы дать программисту вводить в программу переменные с желаемыми свойствами, так как возможностей существующих в языке типов данных зачастую не хватает. Связи между объектами реального мира зачастую настол ько сложны, что для их эффективного моделирования необходим отдельный язык программирования.
Разрабатывать специализированный язык программирования для каждой прикладной задачи – очень дорогое удовольствие. Поэтому в языки программирования вводится объектно-ориентированный подход, который позволяет создавать свой мини-язык путем создания классов и их объектов . Переменными такого мини-языка программирования являются программные объекты, в качестве типа для которых выступает класс. Класс описывает состав объекта – переменные и функции, которые обрабатывают переменные и тем самым определяют поведение объекта.

Переменные объявляются при помощи типа, объекты при помощи класса
0 Comments.