Объектно-ориентированное программирование- это парадигма программирования, в которой основными концепциями являются понятия объектов и классов.
ООП обучает любой язык программирования более хорошему программному коду и используется, для получения более высокой производительности и написания больших проектов, не боясь запутаться в их управлении.
ООП даёт вам возможность создавать объекты которые можно будет использовать многократно, для того что бы вы или другие разработчики могли использовать их в своих проектах не переделывая их снова и снова.
ООП убирает барьеры и сложности в написании и управлении большими приложениями
Несколько слов о истории ООП и создателях (кликните для открытия спойлера)
Алан Кёртис Кэй
Aмериканский учёный в области теории вычислительных систем. Один из пионеров в областях объектно-ориентированного программирования и графического интерфейса. Также известен благодаря фразе «лучший способ спрогнозировать будущее — изобрести его». Президент исследовательского института Вьюпоинта, адьюнкт-профессор информатики в Калифорнийском университете. Советник в TTI/Vanguard. К середине 2005 был главным сотрудником в HP Labs, читал лекции в Киотском университете и был адьюнкт-профессором в Массачусетском технологическом институте.
Разработал язык программирования Smalltalk, где впервые был применён объектно-ориентированный подход. Лауреат премии Тьюринга 2003 года за работу над объектно-ориентированным программированием, Премии Киото (2004). Один из создателей проекта One Laptop Per Child.
Кэй — один из «отцов-основателей» объектно-ориентированного программирования, вместе со своими коллегами из PARC и предшественниками из Норвежского вычислительного центра. Он предложил концепцию Dynabook, которая определила концептуальную базу для ноутбука, планшетного компьютера и электронной книги, и является архитектурой современного оконного графического интерфейса[2]. Так как Dynabook был задуман как учебная платформа, Кэй считается одним из первых исследователей мобильного обучения и, действительно, многие идеи Dynabook были унаследованы при проектировании учебной платформы One Laptop Per Child, в котором Кэй принимает активное участие.
Основные черты первого удачного ОО языка (кликните для открытия спойлера)
Алан Кей в свое время вывел пять основных черт языка Smalltalk — первого удачного ОО языка:
Все является объектом. Объект как хранит информацию, так и способен ее преобразовывать. В принципе любой элемент решаемой задачи (дом, собака, услуга, химическая реакция, город, космический корабль и т. д.) может представлять собой объект. Объект можно представить себе как швейцарский нож: он является набором различных ножей и «открывашек» (хранение), но в то же самое время им мы можем резать или открывать что-либо (преобразование).
Программа — совокупность объектов, указывающих друг другу что делать. Для обращения к одному объекту другой объект «посылает ему сообщение». Как вариант возможно и «ответное сообщение». Программу можно представить себе как совокупность к примеру 3 объектов: писателя, ручки и листа бумаги. Писатель «посылает сообщение» ручке, которая в свою очередь «посылает сообщение» листу бумаги — в результате мы видим текст (посыл сообщения от листа к писателю).
Каждый объект имеет свою собственную «память» состоящую из других объектов. Таким образом программист может скрыть сложность программы за довольно простыми объектами. К примеру, дом (достаточно сложный объект) состоит из дверей, комнат, окон, проводки и отопления. Дверь, в свою очередь, может состоять из собственно двери, ручки, замка и петель. Проводка тоже состоит из проводов, розеток и, к примеру, щитка.
У каждого объекта есть тип. Иногда тип называют еще и классом. Класс (тип) определяет какие сообщения объекты могут посылать друг другу. Например, аккумуляторная батарея может передавать электролампе ток, а вот момент или физическое усилие - нет.
Все объекты одного типа могут получать одинаковые сообщения. К примеру у нас есть 2 объекта: синяя и красная кружки. Обе разные по форме и материалу. Но из обеих мы можем пить (или не пить, если они пустые). В данном случае кружка — это тип объекта.
«лучший способ спрогнозировать будущее — изобрести его».
Alan Kay