Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Операторы Java в моделях AnyLogic




В некоторых полях окна свойств объектов модели AnyLogic (и окна Код ак­тивных объектов) могут быть указаны действия. Обычно эти действия связа­ны с событиями, происходящими в модели. Например, поле Действие окна свойств перехода стейтчарта, поля Действие при входе и Действие при выходе каждого состояния стейтчарта, поле Реакция на событие управляющих кно­пок и слайдера и т. п. В эти поля может быть помещен один оператор (на-пример, оператор присваивания) или несколько операторов, и после каждо­го из них, конечно, должна стоять точка с запятой. В это поле может быть помещен и условный оператор или оператор цикла, заканчивающиеся фи-турной скобкой. В таком случае разделитель — точка с запятой — может ине стоять.


Классы и объекты в Any Logic

Классы являются базовыми единицами объектно-ориентированного про­граммирования. В объектно-ориентированном моделировании они форми- I руют определение тех объектов, из которых собирается модель.

Классы и экземпляры классов

Класс в Java формально — это просто средство определения нового типа данных. Класс определяет шаблон, в соответствии с которым будут строить­ся отдельные представители, или экземпляры этого класса. Экземпляра класса называются также объектами. По принятому в среде программистов соглашению обычно имена классов начинаются с заглавной буквы, а имени объектов (экземпляров классов) — со строчной буквы. (Этого соглашения придерживаются разработчики библиотек классов языка Java в фирме Sun Microsystems.)

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

Каждый экземпляр класса содержит свою собственную копию переменных класса, т. е. в каждом объекте эти переменные могут принимать свои значе­ния, и изменения переменных в одном объекте никак не влияют на пере­менные других объектов этого же класса. Различные экземпляры класса от­личаются друг от друга своими параметрами, которые при определении экземпляра класса могут быть явно заданы. Таким образом, мы можем иметь в модели множество однотипных объектов, но с разными параметра­ми и, следовательно, разным поведением.

Для того чтобы обратиться к переменной var объекта obj из кода, не яв­ляющегося частью класса, в котором переменная var определена, нужно использовать "точечную" операцию, т. е. нужно указать имя объекта, в кото­ром переменная или константа объявлена, и за этим именем после точки должно следовать имя переменной: obj.var. Точно так же происходит об­ращение к методам (функциям) класса. Например, если send () — это метод в объекте port, то обратиться к этому методу извне нужно так: port.send().

Внутри класса, в котором определены метод или переменная, к ним нужно

обращаться непосредственно по имени.


Конструктор класса

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

Использование конструктора уже встречалось при разработке модели часов clock в главе 6. Генератор тиков в этой модели создавал новое пустое со­общение и отправлял его через свой порт каждый раз, как только срабаты-вал статический таймер. Новое сообщение — это экземпляр уже созданного в AnyLogic класса object, поэтому создание нового сообщения состояло просто в использовании оператора new object(). Посылка созданного со­общения выполнялась следующим оператором: port.send(new Object())

Ясно, что в этом операторе port — имя объекта класса Port (так был назван выходной порт у генератора), a send — имя метода класса Port. Заметьте, что имя класса object начинается с заглавной буквы, а имя объекта port — со строчной буквы (то, что данный объект является экземпляром класса Port, было определено при создании этого объекта).

Если класс имеет параметры, то при создании объектов этого класса конст-руктор может включать параметры. Например, при выполнении оператора:

Color color = new Color(255, 0, 255);

будет порожден новый объект color типа color (пурпурный цвет). Ясно, что

new Color(255, 0, 255)

это конструктор класса Color. Три параметра типа int в вызове этого кон-структора означают, как мы уже знаем, интенсивности трех цветов — крас-ного, зеленого и синего.

Очевидно, что при порождении нового объекта в конструкторе могут ис­пользоваться не только константы, но и переменные соответствующих ти-пов. Именно это применялось нами в разд. 7.2.3 при построении модели ColorModel1, когда динамическое значение цвета графического элемента зада­валось в зависимости от координаты этого элемента следующим образом: new Color(x, у, В)





Поделиться с друзьями:


Дата добавления: 2018-10-15; Мы поможем в написании ваших работ!; просмотров: 685 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Чтобы получился студенческий борщ, его нужно варить также как и домашний, только без мяса и развести водой 1:10 © Неизвестно
==> читать все изречения...

2452 - | 2334 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.