Объектно-ориентированное программирование: различия между версиями

''Алан Кей'' в свое время вывел пять основных черт языка Smalltalk — первого удачного ОО языка:
# '''Все является объектом.''' Объект как хранит информацию, так и способен ее преобразовывать. В принципе любой элемент решаемой задачи (дом, собака, услуга, химическая реакция, город, космический корабль и т. д.) может представлять собой объект. Объект можно представить себе как швейцарский нож: он является набором различных ножей и «открывашек» (хранение), но в то-же самое время им мы можем резать или открывать что-либо (преобразование).
# '''Программа — совокупность объектов, указывающих друг- другу что делать.''' Для обращения к одному объекту другой объект «посылает ему сообщение». Как вариант возможно и «ответное сообщение». Программу можно представить себе как совокупность к примеру 3 объектов: писателя, ручки и листа бумаги. Писатель «посылает сообщение» ручке, которая в свою очередь «посылает сообщение» листу бумаги — в результате мы видим текст (посыл сообщения от листа к писателю).
# '''Каждый объект имеет свою собственную «память» состоящую из других объектов.''' Таким образом программист может скрыть сложность программы за довольно простыми объектами. К примеру дом (достаточно сложный объект) состоит из дверей, комнат, окон, проводки и отопления. Дверь в свою очередь может состоять из собственно двери, ручки, замка и петель. Проводка так-же состоит из проводов, розеток и к примеру щитка.
# '''У каждого объекта есть тип.''' Иногда тип называют еще и классом. Класс (тип) определяет какие сообщения объекты могут посылать друг-другу.
Анонимный участник