Большая часть из того, что говорилось об объектах до сих пор, исходит из удобств и перспектив Borland Pascal, поскольку наиболее вероятно, что это именно то, с чего вы начнете. Теперь начнутся изменения, поскольку мы подошли к концепциям объект- но-ориентированного программирования с помощью некоторых принци- пов программирования на стандартном Паскале. Объектно-ориентиро- ванное программирование имеет свое собственное отдельное множест- во понятий, частично благодаря началам объектно-ориентированного программирования (до некоторой степени ограниченным) в научных кругах, однако также и потому, что эта концепция действительно является радикально отличной от других.
Примечание: Объектно-ориентированные языки однажды ме- тафорично назвали "языками актеров".
Одним, часто забавным, следствием этого явилось то, что объ- ектно-ориентированное программирование фанатично "одушевляет" свои объекты. Отныне данные для вас не емкости, которые вы можете наполнять значениями. С точки зрения нового взгляда на вещи, объ- екты выглядят как актеры на подмостках со множеством заученных ролей (методов). Если вы (директор) даете им слово, то актеры на- чинают декламировать в соответствии со сценарием.
Было бы полезно представить функцию AnHourly.GetPayAmount как, например, дающую распоряжение объекту AnHourly "Вычислить размер вашей ежедневной платы". Центральной концепцией здесь яв- ляется объект. Этот объект обслуживают как список методов, так и список полей данных, содержащихся в объекте. И ни код, ни данные не являются здесь "директором".
Чтобы быть совсем привлекательным, объект не может быть опи- сан как актер на сцене. Образцу объектно-ориентированного прог- раммирования с большим трудом удается моделировать составляющие проблемы как компоненты, а не как логические абстракции. Случай- ности и закономерности, наполняющие нашу жизнь (от тостеров до телефонных звонков по поводу махровых полотенец) все имеют харак- теристики (данные) и линии поведения (методы). Характеристики тостера могут включать требуемое напряжение, число гренок, кото- рые он может поджарить одновременно, установку слабого или силь- ного уровней поджаривания, цвет тостера, его фабричную марку и т. д. Его поведение может включать загрузку кусков хлеба, поджарива- ние этих кусков и автоматическое выталкивание готовых гренок на- ружу.