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

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

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

метод финальный.По умолчанию, методы не являются финальными. Ключевое слово Final наследуется подклассами.Private – задает, что данный метод может быть вызван только методами этого жекласса или подклассов ( если метод не является private, тогда ограничений на вызов метода нет). Подклассы наследуют private-методы и могут изменять значение этого ключевого57слова. По умолчанию методы являются public. (Заметим, что другие языки программирования используют слово «protected» для описания такого способа видимости и используют“private” для того, чтобы помешать видимости метода из подклассов).ReturnType – определяет тип возвращаемого значения. Установка ReturnType равным пустой строке (“ ” ), означает, что нет возвращаемого значения.Значение ReturnType наследуется подклассами и может быть изменено в подклассе.По умолчанию, метод не имеет возвращаемого значения.SQLProc – задает метод как хранимую процедуру SQL.

По умолчанию метод не является хранимой процедурой.5.6.8. Методы класса и экземпляровМетоды экземпляров используются, если создан экземпляр объекта. Причем внутриметода сам объект доступен с помощью синтаксиса ##this. Например:set sc= ##this.%Save()В данном примере экземпляр объекта доступен через ##this, %Save – метод экземпляра.Метод класса не относится к конкретному экземпляру. Метод класса вызывается безссылки на объект, поэтому синтаксис ##this в них отсутствует. Свойства и методы экземпляра для них не имеют смысла. Методам класса доступны параметры класса.Примеры методов класса:%New() – создать экземпляр объекта.%OpenId() – открыть существующий экземпляр%DeleteId() – удалить экземпляр в базе данных.5.6.9. Вызов методаДля вызова метода экземпляра сначала нужно создать или открыть экземпляр объекта.

Для выполнения метода используется синтаксис, подобный одной из следующихстрок кода:Do oref.MethodName(arglist)Set value = oref.MethodName(arglist)где oref это ссылка на подходящий объект, который уже находится в памяти,MethodName это имя метода для выполнения, arglist это список аргументов передаваемыхметоду, во второй строке локальной переменной присваивается значение, возвращаемоеметодом.Например, для выполнения метода Admit объекта Patient используется следующийкод:Do pat.Admit()где pat это OREF на желаемый объект Patient.Аналогично, для выполнения метода SearchMedicalHistory объекта Patient используется следующий код:Set result = pat.SearchMedicalHistory("MUMPS")Где pat это OREF-ссылка на желаемый объект Patient и result содержит значение, возвращаемое методом SearchMedicalHistory.Метод класса выполняется без создания экземпляра.

Можно выполнить метод классаиз метода того же класса. В этом случае, можно вызвать метод класса, как если бы вызывался метод экземпляра.Для выполнения метода класса используется следующий синтаксис:Do ##class(Classname).MethodName(arglist)Set value = ##class(Classname).MethodName(arglist)Где Classname это имя класса с подходящим методом, MethodName это имя методавыполнения, arglist это список аргументов, передаваемых методу. Value это переменная,получающая значение, возвращаемое методом.58Имя класса может содержать имя пакета. Например, вызов метода PurgeAll классаReportCard:Do ##class(MyApp.ReportCard).PurgeAll()Где MyApp – это имя пакета.Аналогично, можно выполнить метод Exists класса %File, который определяет, существует ли файл, используя следующий код:Set exists = ##class(%File).Exists("\temp\file.txt")Где exists равно true (1), если файл существует, или false (0), если такого файла нет.5.6.10. Виды методовВ объектной модели Caché различают четыре разновидности методов:• Метод-код• Метод-выражение• Метод-вызов• Генератор методаМетод-код – содержит код, написанный на языке Caché Object Script.

Это простореализация метода в виде строк кода. Этот вид метода является видом по умолчанию. Например, следующий метод определяет код метода Speak для класса Dog:Class MyApp.Dog Extends %Persistent [ClassType = persistent]{Method Speak() As %String{Quit "Woof, Woof"}}Метод-код может содержать любой правильный код на Caché ObjectScript, включаявстроенный SQL и HTML, или код на Basic, в зависимости от ключевого слова. При вызове метода используется ссылка на экземпляр:Write dog.Speak()// выдаст:Woof, WoofМетод-выражение – содержит выражение на языке Caché Object Script. Передачапараметров по ссылке недопустима.

Не может содержать макросы, встроенный SQL,встроенный HTML.При компиляции программы все вызовы метода заменяются этим выражением.Обычно используется для простых методов, которые, например, присутствуют в классахтипов данных, когда требуется быстрая скорость вычисления выражений. Например, можно конвертировать метод Speak класса из предыдущего примера в метод-выражение:Method Speak() As %String [CodeMode = expression]{"Woof, Woof" }Этот метод можно вызывать так:Write dog.Speak()Будет сгенерирован следующий код:Write "Woof, Woof"Неплохо было бы назначить формальным параметрам метода-выражения значенияпо умолчанию. Тогда не нужно было бы их назначать во время выполнения.Замечание: Caché не разрешает использование макросов или вызовов аргументов поссылке внутри методов-выражений.Метод-вызов – вызывает существующую программу Caché. Как правило, такие вызовы используются для того, чтобы инкапсулировать существующий код в объектноориентированный проект.Определение метода как метода-вызова указывает, что при вызове метода вызывается специальная подпрограмма.

Синтаксис метода вызова:Method Call() [ CodeMode = call ]59{Tag^Routine }где “Tag^Routine” задает имя метки Tag внутри подпрограммы Routine.Генераторы методов – особые методы, содержащие код для порождения кода наязыке Caché Object Script. Они используются во время компиляции классов для генерацииверсии метода времени выполнения. При этом они могут обращаться к параметрам классадля выбора подходящего варианта генерации кода.ПараметрыклассаГенераторметодаКод метода5.7. Параметры класса и генераторы методовПараметры класса – это константы, то есть значения, устанавливаемые во время определения класса или в любое другое время перед компиляцией класса. Параметры классаустанавливаются для всех объектов этого класса и могут использоваться в методах класса.Во время выполнения значения параметров класса изменениям не подлежат.Значения параметров класса наследуются и могут перекрываться в производныхклассах, либо пополняться дальнейшими параметрами класса.

Например:Например, класс MyApp.A имеет параметр XYZ со значением 100Class MyApp.A{ Parameter XYZ = 100; }Подкласс MyApp.B может перекрыть значение этого параметра.Class MyApp.B Extends MyApp.A{ Parameter XYZ = 200; }Параметры класса обычно используются при компиляции с участием генераторовметодов. Генератор метода использует параметр класса с целью управления ходом генерации, например для конкретизации поведения типов данных.Параметр класса имеет специальное поведение, когда используется с классами типовданных.

С классом типов данных, параметр класса используется для обеспечения способаизменения поведения типа данных.Например, класс типа данных %Integer имеет параметр класса MAXVAL, которыйопределяет максимальное значение для свойства типа %Integer. Определим класс со свойством NumKids следующим образом:Property NumKids As %Integer (MAXVAL=10);Это означает, что параметр MAXVAL для класса %Integer должен быть установленравным 10 для свойства NumKids.Это работает следующим образом: методы проверки для классов типов данных всереализованы в виде генераторов методов и используют параметры классов для контролягенерации методов. В этом примере, это определение свойства генерирует код методаNumKidsIsValidDT, который проверяет, превышает ли значение свойства NumKids число10. Без использования параметров класса для подобной функциональности потребуетсясоздать определение класса IntegerLessThanTen.У любого зарегистрированного класса имеется параметр класса PROPERTYVALIDATION.

Он указывает должны или нет проверяться значения свойств, и если да, то когдаименно:• 0 – означает отсутствие проверки• 1 – предполагает проверку в момент присваивания значения.• 2 (по умолчанию) – означает проверку при сохранении.При каждом изменении этого параметра, сопровождаемом перекомпиляцией, генераторы методов вставляют соответствующий код проверки значений свойств каждый раз в60подходящее место. Таким образом, параметры класса служат для согласования поведениякласса с конкретными потребностями данного приложения.5.8.

ЗапросыПредоставляют в распоряжение разработчика операции с множествами экземпляровклассов. Можно считать, что запросы образуют для объектов класса некий фильтр.Запросы можно формулировать либо на языке Caché Object Script, либо на SQL. Результат запроса становится доступен через ResultSet – специальный интерфейс для обработки результатов запроса в прикладных программах, написанных на языке Caché ObjectScript, или на любом другом с использованием ActiveX, либо на языке Java. Кроме того,запросы могут быть представлены в виде хранимых процедур SQL или же представлений(View), а значит, далее обрабатываться средствами SQL.5.9. ИндексыИндекс – это не что иное, как путь доступа к экземплярам класса. Индексы используются для оптимизации скорости выполнения запросов.

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

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

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

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