Smalltalk в примерах/Основы: различия между версиями

Содержимое удалено Содержимое добавлено
мНет описания правки
Строка 7:
==Объекты==
 
Что такое объект? В реальном мире мы можэмможем думать об объектах как о <i>вещах</i>: яблоко, машынамашина, человек, дом. В мире программ мы используем объекты которые модэлируютмоделируют реальный мир, и мы такжэтакже используем объекты которые делают нашу жызньжизнь проще, такие как поля ввода, текстовые строки, совокупности, числа, файлы, окна, процэссыпроцессы. Главное качество объекта это то что он можэтможет иметь имя и можэтможет быть отличёнотличен от объектов другого типа. Давайте рассмотрим пример цэннойценной бумаги которая продаётся на фондовой биржэбирже.
 
Каковы свойства объекта? Объект обычно содержытсодержит некоторую информацыюинформацию, и он обычно имеет некоторое поведение --- он должэндолжен что-то делать. Наш объект цэннаяценная бумага содержытсодержит информацыюинформацию: её название, её текущую цэнуцену, количество !!!, !!!. Она такжэ имеет поведение: она должна давать ответ о новой цэне и она должна накапливать общее количество сделок.
 
Программа Фондовая биржа должна содержать много объектов цэннаяценная бумага, по одному на каждую акцыюакцию продаваемую на биржэбирже. С объектом можно взаимодействовать посылая ему <i>сообщения</i>. Например, если надо узнать текущую цэнуцену акцыиакции, пусть это будет <tt>XYZ</tt> акцыяакция, надо послать сообщение <tt>цэнацена</tt> объекту акцыяакция <tt>XYZ</tt>. В ответ объект акцыяакция находит в своих данных текущую цэнуцену и возвращает её.
 
Если фондовая биржа передаёт информацыюинформацию !!!, она посылает сообщение <tt>покупка: количество цэнацена: цэнацена</tt> объекту <tt>XYZ</tt> (мы будем подробнее говорить о сообщениях в Главе 2, Сообщения). Когда объект акцыяакция получает сообщение, он должэндолжен обновить свои данные --- в данном случае он должэндолжен обновить текущую цэнуцену, количество порцэнтовпроцентов последней сделки и общее количество сделок за день. <i>Объект содержытсодержит собственные данные плюс сообщения которые он понимает</i>.
 
Наш объект акцыяакция содержытсодержит данные: название акцыиакции, обозначение, текущую цэнуцену, объём последней сделки и объём продаж за день; и сообщения: <tt>имяАкцыиимяАкции, обозначение, цэнацена, последняяСделка, объёмСделок</tt>, и <tt>покупка:цэнацена:</tt> (плюс некоторые другие). Данные хранятся в переменных экзэмпляраэкземпляра. Каждый объект акцыяакция имеет свою собственную копию <i>переменных экзэмпляраэкземпляра</i>, так что каждая акцыяакция можэтможет хранить различные значения цэныцены, обозначения, и т.д.
 
==Инкапсуляцыя==