Базовая информация о объектно-ориентированном программировании

Процедурные языки

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

To understand what an object-oriented programming language is, you need to understand what it replaced. Early programming languages were procedural—so-called because the programmer would define a very specific set of procedures that the computer would undertake.

В те времена процедуры записывались на перфокартах. На каждом шаге данные читались, обрабатывались и сохранялись. Этот подход хорошо работал тогда, да и сейчас в общем-то свою функцию выполняет. Однако, когда нам требуется написать программу, которая сложнее чем набор простых шагов - то в этом случае решение с помощью процедурного подход становится сложным для работы. Одним из вариантов преодоления результирующей сложности программы является ООП.

Объектно-ориентированное программирование

В первом ООП языке (Simula) была введена идея объекта. Объекты это наборы информации, воспринимаемые как целое. Туманно, но разберем позже на примерах, пока же поговорим о классах. В контексте ООП это можно сказать «предобъекты». Они содержат список свойств, которые после определения становятся объектом.

Рассмотрим пример с шахматами. Предположим что нам требуется написать шахматную игру. Вероятно нам захочется использовать класс Фигура. Каждая Фигура имеет следующий набор свойств:

Цвет

Высота

Форма

Как ходит

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

Чем ОО подход лучше процедурного? Если кратко, то ООП языки позволяют аккуратнее организовать данные и код так, что в больших проектах работа с ними происходит более гибко. Познакомимся со основными столпами ООП.