Главная » Статьи для тега "объекта"

Базовые типы Java

Добавлено Дата: 5 December, 2011 категория: Java, Структуры данных и алгоритмы

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

Читать »

Операции обновления

Добавлено Дата: 4 December, 2011 категория: Java, Структуры данных и алгоритмы

Еще одной особенностью структуры данных списка, помимо элегантного поискового алгоритма, являются простые алгоритмы обновления словаря.

Ввод

Алгоритм ввода для skip-списка использует механизм генерации случайных чисел для определения количества ссылок на вводимый объект (к,е), добавляемых в список. Ввод нового объекта (к,е) в срисок начинается с выполнения операции SkipSearch(A;). В результате получаем позицию р нижнего левого объекта с наибольшим ключом, меньшим или равным к (р в этом случае может оказаться позицией специального объекта с ключом «-оо»). Затем (к,е) вводится в список нижнего уровня за позицией р. После ввода объекта «подбрасываем монетку», то есть вызываем метод random(), возвращающий случайное число в диапазоне между 0 и 1. Если это число меньше 1/2, переходим на один уровень вверх, вводим (к,е) в соответствующую позицию этого уровня и снова «подбрасываем монетку». Продолжаем до тех- пор, пока возвращаемое число не оказывается большим 1/2, после чего процесс прекращается. Затем все ссылки на новый объект (к,е), созданные в процессе ввода, связываются воедино, и для (к,е) создается башня.

Читать »

Выражения Java

Добавлено Дата: 4 December, 2011 категория: Java, Структуры данных и алгоритмы

Из переменных и констант составляются выражения, используемые для описания и изменения переменных. В данном разделе более подробно остановимся на вычислении выражений в Java. Выражения состоят из констант, переменных и операций. Выше переменные уже были рассмотрены, поэтому в данном разделе остановимся подробнее на литеральных константах и операциях.

Читать »

Delphi 2006 – Программное удаление объектов ЕСО

Добавлено Дата: 1 December, 2011 категория: Delphi

Удаление объекта ЕСО требует больших усилий, нежели его создание. Необходимо каким-то способом определить, какой конкретно элемент подлежит удалению.

Для отслеживания элемента, выбранного в таблице «Звезды», воспользуемся уже знакомым компонентом CurrencyManagerHandle, но в данном случае обратимся к нему программно. Поместим на форму новую кнопку и назовем ее Удалить звезду. Добавим в проект компонент CurrencyManagerHandle и назовем его cmhStar. Его свойство RootHandle настроим на дескриптор ehStar. Таким образом мы получим доступ к экземплярам класса Star. В свойстве BindingContext выберем таблицу DataGridl. Значение свойства RootHandle объекта ehPlanet по умолчанию рянио rhRoot (ссылка на корневой дескриптор). Заменим его на значение cmhStar. В свойстве Expression введем строку self .planets. Она содержит выражение OCL, описывающее список объектов ЕСО, доступных через текущий дескриптор ehPlanet. В результате этот дескриптор поставит в программу не все без исключения экземпляры класса Planet, а лишь связанные с текущим объектом, выбранным в таблице «Звезды».

Читать »

Delphi 2006 – Шаблон Flyweight (Приспособленец)

Добавлено Дата: 1 December, 2011 категория: Delphi

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

Читать »

Delphi 2006 – Диаграмма классов (Class Diagram)

Добавлено Дата: 27 November, 2011 категория: Delphi

Наиболее важными и распространенными среди программистов по праву считаются диаграммы классов (class diagram). С их помощью описываются классы, используемые в программе, представляются схемы наследования,

определяются поля и методы. Принципы описания классов средствами языка UML понятны любому программисту, знакомому с объектно-ориентиро- ванным программированием и схемами наследования классов.

Читать »

Delphi 2006 – Шаблон Memento (Хранитель)

Добавлено Дата: 27 November, 2011 категория: Delphi

Хранитель полезен в случаях, когда работа объекта прерывается, например, в исключительных ситуациях или при получении внешнего сигнала, нуждающегося в срочной обработке. Он позволяет не сбрасывать внутреннее состояние объекта, а запомнить его на время отвлечения, чтобы потом продолжить работу с точки прерывания. Подходит Хранитель и для реализации принципов отката внутреннего состояния системы к некоторым промежуточным контрольным точкам. Еще одна из задач Хранителя — скрытие внутренней информации объекта (рис. 7.19).

Читать »

Delphi 2006 – Отслеживаем объект ЕСО, выбранный в таблице

Добавлено Дата: 22 November, 2011 категория: Delphi

На данный момент программа находится в несколько «разобранном» состоянии. Если ее запустить, то в таблице «Планеты» появится новое поле «Star». В нем должна храниться ссылка на связанный с текущей планетой экземпляр класса Star. Но поскольку такая связь явно не установлена, в поле отображается строка <null>. Она обозначает отсутствие связи. В свою очередь, в таблице «Звезды» новые поля не добавляются: ведь каждая звезда может быть связана со множеством планет одновременно, и простым добавлением полей здесь не обойтись.

Читать »

Delphi 2006 – Расширяем возможности приложения ЕСО

Добавлено Дата: 10 November, 2011 категория: Delphi

Дополним форму приложения второй кнопкой. Введем в качестве ее заголовка строку Добавить Планету. Разместим также на форме вторую таблицу DataGrid. Пусть ее название (свойство Captiontext) —Планеты.

Добавим в проект новый компонент ExpressionHandle и назовем его ehPlanet. Он будет ответственен за доступ к экземплярам класса Planet объектного пространства. Введем в свойстве RootHandle значение rhRoot в качестве его корневого объекта. В свойстве Expression введем строку Planet .Alllnstances (можно воспользоваться построителем выражений OCL).

Читать »

Delphi 2006 – Шаблон Decorator (Декоратор)

Добавлено Дата: 8 November, 2011 категория: Delphi

Декоратор, как и другие шаблоны данной группы, предоставляет возможность гибкой модификации интерфейса, предназначенного для конечного разработчику. В частности, Декоратор позволяет расширять некоторый класс новыми функциями в случаях, когда наследование этого класса невозможно или приводит к усложнению проекта (если, например, приходится расширять интерфейс на протяжении всей разработки, и каждый раз реали- зовывать дополнение во множестве классов-наследников сложно; или когда требуется модифицировать поведение объекта динамически, во время работы программы), — рис. 7.10.

Читать »

Delphi 2006 – Применяем автоформы к связанным таблицам

Добавлено Дата: 6 November, 2011 категория: Delphi

Зададим обеим таблицам режим поддержки автоматических форм. Для этого в свойство EcoAutoForm каждой таблицы внесем значение True. Теперь записи таблиц можно редактировать в отдельном немодальном окне, которое открывается двойным щелчком на левой части записи в таблице. В полях редактирования автоформы представляются не только собственные свойства выбранного объекта, но и поля сторонних объектов, связанных с ним. В нашем случае при открытии в автоформе объекта таблицы «Звезды» на вкладке Planets (планеты, связанные с текущей звездой) будет доступна

Читать »

Анимация двухмерных изображений

Добавлено Дата: 10 July, 2011 категория: Ассемблер, Железо

Анимация в двухмерном режиме, то есть создание на экране иллюзии движения плоских изображений (спрайтов), также реализуется при помощи масок [1]. Однако если для неподвижного объекта (например, буквы шрифта) достаточно одной маски, то движущийся объект требует отдельную маску для каждой фазы движения в каждом из возможных направлений. Чтобы получить приличную иллюзию движения, необходимо отобразить от 8 до 12 фаз [20]. Человеческий глаз способен различать углы менее одного градуса, поэтому, чтобы создать иллюзию вращения крупного объекта или движения его по произвольным направлениям, нужно иметь по маске на каждый из возможных трехсот шестидесяти градусов поворота. Сложные объекты способны совершать разнообразные виды движений, для каждого из которых нужен собственный комплект масок. Объект типа «человек», например, может идти, ползти, прыгать, приседать, взбираться по лестнице, плыть и т. п. Механические объекты обычно проще, чем живые, — требуют меньшего количества фаз и разновидностей движения (поэтому их так любят использовать разработчики игр).

Читать »

Приемы синхронизации Java

Добавлено Дата: 10 June, 2011 категория: Java

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

Схема синхронизации на стороне клиента предполагает, что все клиенты, обладающие совместными правами доступа к объекту, при обращении к нему должны прежде запросить блокировку объекта, используя инструкции или методы synchronized. Подобное соглашение довольно непрочно, поскольку зиждется только на благих намерениях клиентов работать по правилам. Предпочтительно заставить совместно используемые объекты защищать свой код посредством собственных synchronized -методов (либо соответствующих synchronized -инструкций в теле методов). В этом случае клиенты просто не смогут использовать объект какими бы ни было несинхронизированными способами. Такой подход иногда называют Синхронизацией на стороне сервера (server-side synchronization), хотя, по большому счету, это просто расширение объектно-ориентированной концепции, достижение большей степени инкапсуляции характеристик поведения кода За счет сокрытия функций синхронизации.

Читать »

Работа с Word через объект Word Basic

Добавлено Дата: 10 June, 2011 категория: Delphi

Создадим новый проект (Gleval8\l) под названием WordTxt, поместим на форму компонент Memo, две кнопки Button (Открыть документ Word и Сохранить текст), а также диалог OpenDialog, у которого в свойстве Filter установим маску документы doc и RTF| *.doc; *.rtf. В предложение uses надо вставить упомянутый ранее модуль ComObj, а в секции var объявить переменную WordApp: OLEVariant. Для большей широты охвата темы я также покажу, как проверять наличие OLE-объекта word в системе через реестр, для чего добавим в uses еще и ссылку на модуль Registry.

Читать »

Класс Properties для хранения строковых ключей и соответствующих им строковых элементов

Добавлено Дата: 10 June, 2011 категория: Java

 

  Объект класса Properties используется для хранения строковых ключей и соответствующих им строковых элементов. является производным от Hashtable и предусматривает поддержку объекта Properties, предлагаемого по умолчанию для свойств (properties), которые отсутствуют в хеш-таблице (hashtable). Для манипуляций с объектом Properties почти во всех случаях используются стандартные методы Hashtable, но операции set и get можно осуществлять с помощью специальных методов, оптимизированных для работы с объектами String. Помимо унаследованных членов, класс Properties содержит ряд конструкторов и методов, рассмотренных ниже.

Читать »