nsutextbook (1037554), страница 15

Файл №1037554 nsutextbook (Методические указания по выполнению лабораторной работы №1) 15 страницаnsutextbook (1037554) страница 152017-12-25СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 15)

Работа со свойствами ссылками на хранимые объектыДанные, на которые указывает свойство ссылка, существуют как независимые объекты в оперативной памяти. Для установки связи между двумя объектами, объект, на который ссылаются, должен быть связан со свойством-ссылкой другого объекта. Как толькоэта связь установлена, можно изменять объект, на который ссылаются либо прямо, либоиспользуя точечный синтаксис.6.5.1. Связывание объекта со свойством ссылкойСуществует два способа ассоциирования объекта со свойством ссылкой. Если объектв памяти, можно использовать его OREF. Если он на диске, можно использовать его объектный идентификатор (ID).Для объекта в памяти используется следующий синтаксис:Set oref.PropertyName = RefOrefгде oref – ссылка OREF конкретного объекта, PropertyName – имя свойства-ссылки,RefOref – это ссылка OREF на объект, с которым устанавливается связь.Например, для назначения автомобилю Car владельца, объекта типа Person, используем следующий код:Set car.Owner = personгде car – ссылка OREF на объект Car и person ссылка OREF на объект Person.Если объект хранится на диске и имеет значение ID, используется следующий синтаксис:Do oref.PropertyNameSetObjectId(RefId)где oref – ссылка OREF на определенный объект, PropertyName – имя свойствассылки на объект, RefId – это ID объекта, на который ссылаются.

Для каждого свойствассылки существуют методы SetObject (использует значение OID) и SetObjectId (использует значение ID). Например, чтобы назначить владельца (ссылку на объект типа Person)конкретному автомобилю (объекту типа Car) используется следующий код:Do car.OwnerSetObjectId(PersonId)Где car ссылка OREF на объект Car и PersonId это значение ID сохраненного объектаPerson.Для извлечения значений свойств хранимых объектов используются методы GetObject и GetObjectId.656.5.2. Изменение свойств объектов, на которые есть ссылка, с использованием точечного синтаксисаКак только объект ассоциирован со ссылкой, он может быть изменен с использованием точечного синтаксиса:Set oref.PropertyName.RefPropertyName = valueГде oref – ссылка OREF на исходный объект, PropertyName – имя свойства-ссылкина другой объект, RefPropertyName – имя свойства связываемого по ссылке объекта, которое требуется изменить, и value – новое значение.Например, чтобы установить значение свойства Name объекта Owner через экземпляр объекта Car, используйте следующий код:Set car.Owner.Name = "Иванов Александр "Где car – это OREF-ссылка на объект класса Car и " Иванов Александр " значениесвойства.6.6.

Работа со свойствами ссылками на встраиваемые объектыВстраиваемые объекты существуют как самостоятельные объекты в оперативной памяти, но сохраняются как часть хранимых объектов на диске. Существует два способаизменения свойств встраиваемых объектов:• Создать экземпляр встроенного объекта и связать этот экземпляр со значением свойства объекта-контейнера.• С помощью точечного синтаксиса.6.6.1. Связывание объекта со свойством встроенного объектаПервый способ – это создать встроенный объект и заполнить его свойства:1. Создать экземпляр встроенного объекта с помощью метода класса %New;2.

Связать OREF встроенного объекта со свойством-контейнером, используяследующий синтаксис:Set oref.PropertyName = EmbeddedOrefгде oref – ссылка OREF на объект-контейнер, PropertyName – имя свойства объектаконтейнера типа встроенного объекта, EmbeddedOref – ссылка OREF на встраиваемыйобъект;3. Заполнить значениями свойства объекта, используя основной синтаксис дляустановки значений.Замечание: можно заполнять свойства встраиваемого объекта до связи его с объектом контейнером.Например, создается новый объект типа Address:Set address = ##class(Address).%New()Можно связать его со свойством Home объекта Person:Set person.Home = addressГде address – ссылка OREF на новый объект Address и person – это ссылка OREF наобъект Person.Установка значений свойств встраиваемого объекта выполняется с использованиемосновного синтаксиса:Set person.Home.State = "MA"6.6.2.

Изменение встраиваемых объектов с использованием точечного синтаксисаВторой способ – это задание свойств встраиваемого объекта без явного создания экземпляра:Set oref.PropertyName.EmbPropertyName = value66где oref ссылка OREF на объект, PropertyName имя свойство объекта-контейнера типа встраиваемого объекта, EmbPropertyName имя свойства встраиваемого объекта, которое нужно изменить.Например, изменить встроенный объект Home объекта Person можно так:SetSetSetSetperson.Home.Street = "One Memorial Drive"person.Home.City = "Cambridge"person.Home.State = "MA"person.Home.Zip = 02142где person – ссылка OREF на объект Person и его домашний адрес “One MemorialDrive, Cambridge, MA 02142”.6.7. Работа со свойствами-спискамиСписок это упорядоченная порция информации. Каждый элемент имеет свою позицию в списке.

Можно добавить элемент в список, либо изменить значение элемента списка. Добавление нового элемента в список как бы раздвигает его, т.е. вставка нового элемента во вторую позицию списка, приводит к тому, что второй элемент становится третьим, третий – четвертым и т.д.Существует два типа списков свойств:• Список типов данных• Список объектов.Список объектов может содержать либо встроенные объекты, либо хранимые объекты.

Эти списки пополняются данными разными способами.6.7.1. Работа со списком типов данныхМожно добавлять данные в список, используя следующий синтаксис:Do oref.PropertyName.Insert(data)Где oref – это ссылка OREF на объект, PropertyName – это имя свойства-списка, иdata – это данные. Например, можно добавить значение “желтый” в конец списка любимых цветов, используя код:Do person.FavoriteColors.Insert("желтый")где person – ссылка OREF на объект Person.Можно изменить значение элемента n, используя синтаксис:Do oref.PropertyName.SetAt(data,n)где oref – ссылка OREF на объект, PropertyName – это имя свойства-списка, data –это данные.

Например, можно изменить список любимых цветов, например:Do person.FavoriteColors.SetAt("желтый",2)Т.е. вместо второго элемента будет вставлено значение "желтый".Можно вставить данные в позицию n:Do oref.PropertyName.InsertAt(data,n)Вставка нового элемента списка как бы раздвигает список. Например, можно изменить список любимых цветов “красный”, “голубой”, “зеленый” следующим образом:“красный”, “желтый”, “голубой”, “зеленый” с помощью следующего оператора:Do person.FavoriteColors.InsertAt("желтый",2).6.7.2. Работа со списками встроенных объектовМожно заполнять списки встроенных объектов несколькими способами.

Можно создать новый объект, заполнить его данными, и затем добавить их в конец списка, используяследующий синтаксис:Do oref.PropertyName.Insert(ItemOref)67где oref – ссылка OREF на объект-контейнер, PropertyName – имя свойства-спискаконтейнера, ItemOref – это ссылка OREF на встроенный объект. Например, можно добавить новую запись о вакцинации Vaccination к объекту Patient, используя следующий код:Do pat.Vaccination.Insert(vac)где pat – ссылка OREF на объект Patient, vac – это ссылка OREF на объект Vaccination.Можно создать новый объект, заполнить его данными, и добавить его в позицию n,используя следующий синтаксис:Do oref.PropertyName.SetAt(ItemOref,n)где oref – ссылка OREF на объект-контейнер, PropertyName – это имя свойства-списка контейнера, ItemOref – это ссылка OREF на встроенный объект.

Если элемент с номером n уже существует, он получает новое значение, если не существует, он вставляется взаданную позицию списка. Например, можно изменить второй элемент списка вакцинаций:Do pat.Vaccination.SetAt(vac,2)pat – ссылка OREF на объект Patient, vac – это ссылка OREF на новый объектVaccination, который изменяет второй элемент списка.Можно создать новый объект, заполнить его данными, затем вставить его в позициюn списка, используя след синтаксис:Do oref.PropertyName.InsertAt(ItemOref,n)Вставка нового элемента как бы раздвигает список.

Например, можно добавить новую вакцинацию в третью позицию списка вакцинации Vaccination объекта Patient:Do pat.Vaccination.InsertAt(vac,3)где pat – ссылка OREF на объект Patient, vac ссылка OREF на объект Vaccination.6.7.3. Работа со списками хранимых объектовСинтаксис, описанный для заполнения списка встроенных объектов, также применим для списка хранимых объектов, если объекты находятся в памяти. К тому же, можнопополнять списки хранимых объектов объектами, не находящимися в памяти.Работа со списками выполняется разными способами. Можно добавить объект в конец списка, используя следующий синтаксис:Do oref.PropertyName.InsertObject(itemoid)где oref – ссылка OREF на объект, PropertyName это имя свойства-списка, и itemoid –это OID объекта.

Например, можно добавить информацию о новой собаке к списку любимцев:Do per.Pets.InsertObject(DogOid)Где per – это ссылка OREF на объект Person, Pets – свойство-список, DogOid это OIDобъекта класса Dog.Можно добавить объект в позицию n, используя следующий синтаксис:Do oref.PropertyName.SetObjectAt(ItemOid,n)где oref это ссылка OREF на объект, PropertyName это имя свойства-списка, ItemOidэто OID объекта. Например, можно добавить информацию о новой собаке в список, расположив ее в третьей позиции списка:Do per.Pets.SetObjectAt(DogOid,3)где per ссылка OREF на объект Person и DogOid это OID объекта класса Dog.Можно вставить объект в позицию n списка:Do oref.PropertyName.InsertObjectAt(ItemOid,n)Вставка нового элемента как бы раздвигает список.

Например, вставить информациюо новой собаке в начало списка любимцев:Do per.Pets.InsertObject(DogOid,1)Где per – ссылка OREF на объект Person и DogOid – это OID объекта класса Dog.686.7.4. Изменение свойств объектов в спискахТак как объект связан с некоторой позицией в списке, можно изменить его свойства,используя следующий синтаксис:Set oref.PropertyName.GetAt(n).ListPropertyName = dataгде oref – ссылка OREF на объект, содержащий список; PropertyName это имя свойства-списка, метод GetAt находит и возвращает значение элемента в позиции n.ListPropertyName это имя свойства для изменения, data это новые данные свойства.Например, чтобы изменить свойство name (имя) второй собаки из списка любимцев:Set per.Pets.GetAt(2).Name = "Rover"где per ссылка OREF на объект Person и Rover это новое имя любимца.6.8.

Характеристики

Тип файла
PDF-файл
Размер
2,42 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее