Что такое свойство объекта каким образом его можно изменять
Объекты приложения обладают определенными свойствами, методами и событиями. Свойства отражают способы хранения данных в объектах или содержат характеристики объекта. Свойства могут возвращать вложенные объекты, поддерживая таким образом иерархию объектов MS Office. Методы осуществляют действия с объектами. Многие объекты реагируют на события. Большая часть событий связана с действиями пользователя, например, открытие файла или изменение данных. Если написать программу, обрабатывающую события, то приложение будет реагировать на действия пользователя.
Различные коллекции объектов имеют общие методы и свойства, но параметры вызова методов могут различаться.
Свойства объекта делятся на две группы:
· свойства-участники (accessors), представляющие вложенные объекты;
· терминальные свойства (terminals), задающие характеристики объекта или его состояние.
Свойства-участники позволяют получить доступ к объекту, находящемуся на любом уровне вложенности. Например, для MS Excel запись Application.ActiveWorkbook осуществляет доступ к активной рабочей книге, а запись ActiveWorkbook.ActiveSheet – к активному листу активной рабочей книги. Изменение значений терминальных свойств – это один из способов изменить внешний объекта.
Свойства имеют статус:
· Read-Write (далее R/W) предполагает возможность изменения свойства;
· Read-Only (далее R/O) означает, что доступно только тестирование значения свойства.
Статус и типы значений свойств объектов можно уточнить, используя справочную систему (Help или Object Browser). Некоторые свойства являются общими для многих объектов и для разных объектов могут иметь разный статус, как, например, свойства Height, Width, являющиеся свойствами интервалов, окон и приложения.
Свойства объектов изменяются при помощи оператора присваивания или под влиянием методов. В качестве значений свойств могут использоваться константы приложения, например, константа xlCalculationManual устанавливает ручной пересчет таблицы Excel.
Синтаксис операторов присваивания object.property=expression
· object – ссылка на объект, над которым совершается действие;
· property – название свойства, значение которого необходимо изменить;
· expression – выражение, представляющее новое значение свойства объекта.
Каждое свойство может принимать значения только определенного типа, например, “текстовый”, “числовой” или “дата”, поэтому тип результата вычисления выражения должен соответствовать типу свойства, т. е. если свойство является числовым, то и результат вычисления выражения должен быть числом или должен корректно преобразовываться в число. Например, оператор ActiveCell.Font.Bold=”b” является ошибочным, так как свойство Bold имеет тип Boolean и может принимать значения только True или False (1 или 0).
При помощи оператора присваивания можно сохранить значение свойства в переменной, при этом тип переменной должен соответствовать типу значения свойства. Значение свойства может использоваться как часть условного выражения. В таких случаях говорят о возврате значения свойства.
Синтаксис оператора, возвращающего значение свойства:
variable=object.property
· variable – переменная или свойство некоторого объекта;
· object – ссылка на объект, свойство которого запоминается или тестируется;
· property – название свойства, значение которого необходимо получить.
Методы – это действия, которые выполняются с объектом. Например, если необходимо очистить интервал ячеек, то используется метод Clear для объекта Range. Очевидно, что методы могут влиять на значения свойств, например, метод Clear изменяет свойство Value интервала ячеек, устанавливая его в Empty.
Подобно процедурам, методы могут принимать аргументы. Функции VBA и методы Application могут иметь одинаковые имена, но различные аргументы, например, функция InputBox класса Interaction и метод InputBox класса Application.
Каждый объект имеет свои собственные методы. Некоторые методы являются уникальными, а другие встречаются у нескольких объектов. Например, метод Delete может удалять графический объект и рабочий лист рабочей книги Excel.
Синтаксис вызова метода без аргументов – object.method.
Например, ActiveCell.Justify.
Синтаксис вызова метода с аргументами:
· variable=object.method(arguments) – функциональная форма вызова (аргументы указываются в скобках через запятую после названия метода). Функциональная форма вызова метода используется, если необходимо сохранять значение, возвращаемое методом;
· object.method arguments – операторная форма вызова (аргументы записываются через пробел после названия метода). Операторная форма вызова метода используется, если не нужно сохранять возвращаемое методом значение.
Аргументы можно задавать, используя позиционное или произвольное расположение. Во втором случае используются поименованные аргументы.
Событие, например, – это нажатие командной кнопки в диалоге, закрытие или активизация окна документа.
Источник
2. Объекты: свойства и методы.
Объекты (Objects). Как конструирование графического интерфейса, так и
разработка программного кода базируется на использовании программных объектов.
Каждый объект обладает определенным набором свойств и может использовать определенные
методы обработки данных. Если говорить образно, то объекты — это существительные,
свойства объекта — это прилагательные, а методы объекта — это глаголы.
Программные объекты обладают свойствами и могут использовать методы обработки данных.
Классы объектов являются «шаблонами», определяющими наборы свойств,
методов и событий, по которым создаются объекты. Основными классами объектов
являются объекты, реализующие графический интерфейс проектов.
Объект, созданный по «шаблону» класса объектов, является экземпляром класса и наследует весь
набор свойств, методов и событий данного класса. Каждый экземпляр класса
объектов имеет уникальное для данного класса имя.
Основой для создания графического интерфейса проекта является объект «форма» (рис.).
На основании класса объектов Form можно создавать экземпляры
объектов «форма», которые получают имена Form1, Form2 и т. д.
Свойства объекта (Properties). Каждый класс объектов обладает определенным набором свойств. Так,
например, класс объектов Form обладает
несколькими десятками различных свойств, которые определяют размеры объекта
«форма», цвет формы, положение на экране монитора и т. д. (табл.).
Таблица. Некоторые свойства
объекта «форма»
Свойство | Значение | Комментарий |
Name | Form1 | Имя |
Text | Form1 | Текст |
BackColor | Control | Серый |
Font | MS Sans Serif, обычный, 8 | Шрифт, |
Различные экземпляры
класса объектов обладают одинаковым набором свойств, однако значения свойств у
них могут отличаться. Первоначальные значения свойств объектов можно установить
с использованием диалогового окна Свойства
(Properties) системы программирования.
Так, для объекта
«форма» Form1 можно установить требуемое
значение любого свойства. Для этого необходимо выбрать свойство из списка и
изменить его значение.
Значения свойств
объектов можно изменять в программном коде. Для присваивания свойству объекта
нового значения в левой части строки программного кода необходимо указать имя
объекта и затем — название свойства, которые в соответствии с правилами
точечной нотации разделяются между собой точкой. В правой части строки необходимо
записать конкретное значение свойства:
Объект.Свойство
= ЗначениеСвойства
Например, новая
надпись «Первый проект» в левом верхнем углу объекта Form1 (значение свойства Text) появится в результате выполнения программного кода:
Form1.Text = “Первый
проект”
Методы объекта (Methods). Объекты могут использовать различные методы обработки
данных. Методы имеют аргументы, которые позволяют задать значения параметров
выполняемых действий.
Для использования
метода в строке программного кода необходимо указать имя объекта и затем метод,
которые в соответствии с правилами точечной нотации разделяются между собой
точкой. В скобках при необходимости записываются аргументы метода, разделяемые
запятыми:
Объект.Метод (apr1,
арг2)
Например, с помощью
метода Scale (х, у) можно изменить
размеры формы или элемента управления. Аргументы метода x и y являются коэффициентами масштабирования по
горизонтали и вертикали, т. е. позволяют увеличить или уменьшить ширину и
высоту элемента управления. Например, можно в два раза увеличить размер объекта
по оси X и в
два раза его уменьшить по оси Y:
Me.Scale(2,0.5)
Если производятся операции над самой формой,
то вместо ее имени (например, Form1) в программном коде используется имя Me.
Источник
Объектно-ориентированное программирование на примере языка VBA
Основные понятия объектно-ориентированного программирования
В основе объектно-ориентированного программирования (ООП) лежат следующие базовые понятия: объект, свойство объекта, метод обработки, событие, класс объектов.
Определение 1. Объект – совокупность свойств (параметров) определенных сущностей и методов их обработки (программных средств), т.е. объект– это нечто целое, объединяющее некоторые данные, чем можно управлять с помощью кода VBA. Например, любое приложение Windows – Word, Excel, Explorer и другие являются объектом языка, который называется Application (Приложение); окно программы – объект Windows; документ HTML – объект Document; диапазон ячеек в Excel – объект Range и т.д.
Объект содержит инструкции (программный код), определяющие действия, которые может выполнять объект, и обрабатываемые данные. Один объект может выступать объединением вложенных в него по иерархии других объектов. В частном случае, в VBA объектом являются элементы пользовательского интерфейса, которые создаются на Форме пользователя (UserForm) или на рабочем листе, а также рабочая книга и её элементы.
Объекты могут объединяться в классы, т.е. объект является экземпляром класса.
Определение 2. Класс – совокупность объектов, характеризующихся общностью применяемых методов обработки или свойств.
Определение 3. Свойство – характеристика объекта, его параметр.
Все объекты наделены определенными свойствами, которые в совокупности выделяют объект из множества других объектов. Свойства объектов различных классов могут “пересекаться”, т.е. возможны объекты обладающие одинаковыми свойствами:
Одним из свойств объекта являются метод его обработки.
Определение 4. Метод – программа действий над объектом или его свойствами.
Метод рассматривается как программный код, связанный с определенным объектом; осуществляет преобразование свойств, изменяет поведение объекта. Объект может обладать набором заранее определенных встроенных методов обработки, либо созданных пользователем или заимствованных в стандартных библиотеках, которые выполняются при наступлении заранее определенных событий, например, однократное нажатие левой кнопки мыши, вход в поле ввода, выход из поля ввода, нажатие определенной клавиши и т.п.
Проводя лингвистические аналогии, можно сказать, что объекты – это существительные, свойства – это прилагательные,а методы – глаголы в предложениях языка VBA.
Определение 5. Событие – изменение состояния объекта.
Внешние события генерируются пользователем (например, клавиатурный ввод или нажатие кнопки мыши, выбор пункта меню, запуск макроса); внутренние события генерируются системой.
Существуют различные объектно-ориентированные технологии и методики проектирования программных продуктов, которые должны обеспечить выполнение важнейших принципов объектного подхода:
¨ Инкапсуляция (замыкание) свойств данных и программ в объекте. Инкапсуляция – это скрытие информации. При ООП возможен доступ к объекту только через его методы и свойства. Внутренняя структура объекта скрыта от пользователя, т.е. объекты – это самостоятельные сущности, отделенные от внешнего мира. Инкапсуляция позволяет изменять реализацию объектов любого класса без опасений, что это вызовет нежелательные побочные эффекты в программной системе. Это мощное средство обеспечивает многократное использование одного и того же программного кода, позволяя собирать программу из готовых модулей, как здание из отдельных кирпичиков, но различной архитектуры и функционального назначения.
¨ Наследование – это возможность выделить свойства, методы и события одного объекта и приписать их другому объекту, иногда с их модификацией. Класс может иметь образованные от него подклассы. При построении подклассов осуществляется наследование данных и методов обработки объектов исходного класса. Механизм наследования позволяет переопределить или добавить новые данные и методы их обработки, создать иерархию классов. С точки зрения программиста, новый класс должен содержать только коды и данные для новых или изменяющихся методов.
¨ Полиморфизм – способность объекта реагировать на запрос (вызов метода) сообразно своему типу, при этом одно и то же имя метода может использоваться для различных классов объектов. Например, команда Print, будет по-разному воспринята черно-белым или цветным принтером.
Объекты, методы, свойства, события
Объектам VBA присуща функциональность – они действуют определенным образом и могут откликаться на определенные ситуации. При этом, если свойства объекта определяют его внешний вид и состояние, методы объекта определяют те задачи, которые может выполнить данный объект. Методы, по сути дела, представляют собой сегмент программного кода, внедренного в объект.
Существует определенный формат программного кода, задающего установку свойства, получения значения свойства и использование метода:
Объект.Свойство =Значение
Переменная=Объект.Свойство
Объект.Метод [Параметр1 [… …]
Здесь Объект – имя настраиваемого объекта; Свойство – это характеристика, которую нужно изменить; Метод – это команда, которая используется для изменения объекта; Значение – это новая установка свойства; Параметр – это аргумент, используемый методом.
Пример 1. Следующий пример показывает, как можно изменить текст в строке заголовка окна приложения посредством установки нового значения свойству Caption объекта Application:
Application.Caption = “Пример установки свойства”
Различные типы объектов могут иметь различные методы.
Пример 2. Пример применения метода Show (показать) к объекту UserForm (Форма Пользователя) :
UserForm 1. Show
В результате применения этого метода Форма Пользователя будет выведена на активный рабочий лист текущей книги Excel.
Объекты могут реагировать на события – действия пользователя или другие внешние действия, например, щелчок по кнопке, изменение текста, нажатие клавиши и др. Событие представляет собой действие, распознаваемое объектом, для которого можно запрограммировать отклик.
Иногда свойства и методы объекта оказываются связанными в том смысле, что выполнение некоторого метода приводит к изменению свойств объекта. В свою очередь, изменение некоторых свойств может вызвать наступление событий. Очевидно, что применение метода Move(переместить), допустим, к тому же объекту UserFormизменит значения его свойств (Left и Top), определяющих его местоположение. С другой стороны, результатом принудительного изменения размеров объекта , очевидно, будет событие Resize.
Программа может обрабатывать два основных типа событий: инициируемые пользователем и генерируемые системой. События, инициируемые пользователем, возникают в результате его действий: нажатие клавиши, щелчки кнопками мыши. Но есть события, являющиеся следствием действий пользователя. Например, снятие или установка Флажка пользователем изменяет значение его свойства Value, а это означает наступление события Change.
Таким образом, любое из действий пользователя может вызвать целый набор событий, и порядок их вызова может быть важным. Основными действиями пользователя, генерирующими вызов событий в программе, являются следующие:
§ Запуск программы;
§ Нажатие клавиши;
§ Щелчок кнопкой мыши;
§ Перемещение мыши;
§ Выход из программы.
Читайте также:
Рекомендуемые страницы:
©2015-2020 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-07
Нарушение авторских прав и Нарушение персональных данных
Источник
Наиболее важная часть объекта – его свойства. Объект представляет из себя набор свойств, и каждое свойство состоит из имени и значения, ассоциированного с этим именем. Именем свойства (ключом) может быть только строка, а вот значением – любой тип данных. Если значением свойства является функция, то её можно назвать методом объекта.
Доступ к свойствам
Свойства объектов в JavaScript являются теми же самыми переменными, за тем исключением, что они закреплены за объектом. Как и все переменные JavaScript, имя объекта (которое тоже может быть переменной) и имя свойства чуствительны к регистру. Свойства объекта определяют его индивидуальные характеристики.
Получить значение свойства можно с помощью операторов точки (.) или квадратных скобок ([]). Значение в левой части оператора должно быть ссылкой на объект, обычно это просто имя переменной, содержащей ссылку на объект, но это может быть любое допустимое в JavaScript выражение, являющееся объектом.
Значение в правой части оператора должно быть именем свойства. При использовании оператора точка (.) справа должен находиться простой идентификатор, соответствующий имени свойства. Доступ к любому имени свойства, которое содержит невалидный JavaScript идентификатор (например, имя свойства содержит в себе пробел, тире или начинается с цифры), может быть получен с использованием квадратных скобок ([]).
Значение свойства может быть любым: как значением простого типа, так и другим объектом. Значения можно вкладывать друг в друга, причем вложений можно делать сколько угодно:
Значение объекта может быть обновлено путем присваивания. Если свойство с таким именем уже существует в объекте, его значение заменяется:
Квадратные скобки также позволяют обратиться к свойству, имя которого хранится в переменной:
Если имя свойства хранится в переменной, то единственный способ к нему обратиться – это применение оператора [] (квадратные скобки).
Определение методов
Метод – это свойство объекта, значением которого является функция. Методы определяются так же, как и обычные функции, за тем исключением, что они присваиваются свойству объекта. Вызов метода осуществляется точно также, как и вызов обычной функции – с помощью оператора вызова ():
Методы объектов можно добавлять и удалять в любой момент, точно также как вы поступаете с обычными свойствами объектов:
Для доступа к свойствам объекта внутри метода используется ключевое слово this. Использование this позволяет ссылаться на объект, к которому принадлежит метод:
Здесь вместо this внутри функции (метода) greeting можно было бы обратиться к объекту, используя переменную person (сам объект):
Ключевое слово this
var person = {
name: ‘John’,
greeting: function() {
alert( ‘Hello, ‘ + this.name + ‘!’);
}
// идентичная запись
greeting: function() {
alert( ‘Hello, ‘ + person.name + ‘!’);
}
В предыдущем примере мы определили функцию внутри свойства greeting во время определения объекта person. Однако, мы можем определить сначала функцию, а затем закрепить ее за свойством person.fun. В таком случае поведение this не изменится:
Эти примеры показывают, что на поведение this совсем не влияет то, где была определена функция, а имеет значение только то, что функция была вызвана из свойства объекта.
Через ключевое слово this метод может получить доступ не только к любому свойству объекта, но и передать куда-нибудь ссылку на сам объект:
Известно, что каждый объект содержит ссылку на свой объект-прототип. Если метод находится где-то в цепочке прототипов, то this ссылается на объект, на котором был вызван метод, т.е. как будто этот метод является методом самого объекта, а не прототипа.
В этом примере объект person, не имеет собственного свойства (метода) fullName, а наследует это свойство от своего прототипа prototypeObject. Поскольку поиск свойства начался с person.fullName, то this внутри функции fullName будет ссылаться на объект person. Таким образом, если fullName вызывается как метод объекта person, то и this относится к person. Это очень важная особеность прототипного наследования JavaScript.
Удаление свойств
Оператор delete удаляет свойство из объекта. Он удаляет свойство объекта, если оно есть. Удаление не касается свойств объектов, связанных по цепочке прототипов. Если свойство с таким же именем существует в цепочке прототипов, объект унаследует это свойство из прототипа.
Выражение delete возвращает true, если удаление свойства прошло успешно. delete вернет false только в том случае, когда свойство не было удалено (например, если свойство относится к защищенному объекту, принадлежащему браузеру). true возвращается даже в том случае, если свойство, которое вы пытаетесь удалить, не существует в объекте:
Итоги
- Объект представляет собой набор свойств.
- Получить значение свойства можно с помощью операторов точки (.) или квадратных скобок ([]).
- Свойства можно добавить в объект в любой момент. Для этого следует присвоить значение с указанием имени нового свойства.
- Метод представляет собой свойство, значением которого является функция. Для ссылки на объект, из которого вызывается метод, используется ключевое слово this.
- Методы можно вызывать в точечной записи: имя объекта, точка и имя свойства метода, за которым следует пара круглых скобок.
- Метод можно рассматривать как функцию, присвоенную свойству, поэтому новый метод можно добавить в любой момент.
- Методы могут получать аргументы, как и обычные функции.
- Если несуществующему свойству объекта присваивается значение, данное свойство добавляется в объект. Для удаления свойств используют инструкцию delete.
Задачи
Свойства объекта
Почему данный код выдаёт синтаксическую ошибку?
var cat = {
legs: 4
name: “Гармония”
color: “Черепаховый”
};alert( cat.name ); // SyntaxError
Показать решение
Решение:
Чтобы исправить ошибку, нужно добавить запятую после первого и второго свойства.
Доступ к свойствам объекта
Сохраните значения свойств объекта myObj в переменных x, y и z. Выведите значения переменных x, y и z через alert.
var myObj = {
“an entree”: “hamburger”,
“my side”: “veggies”,
“the drink”: “water”
};// ваш код
Показать решение
Свойство в переменной
- В переменной myDog сохраните имя свойства объекта dogs: “hunter”.
- Присвойте свойство с именем myDog и значением “Ротвейлер” объекту dogs.
- Выведите значение свойства, хранящегося в переменной myDog через alert.
var dogs = {
running: “Арабская борзая”,
hunter: “Лабрадор”,
guard: “Московская”
}// ваш код
Показать решение
Решение:
Если имя свойства объекта хранится в переменной (var myDog = “hunter”), то обратиться к нему можно только через квадратные скобки dogs[myDog].
Обновить свойство
Поменяйте значение свойства guard c “Московская” на “Московская-сторожевая”
var dogs = {
running: “Арабская борзая”,
hunter: “Лабрадор”,
guard: “Московская”
}// ваш код
Показать решение
Решение:
Если имя свойства объекта хранится в переменной (var myDog = “hunter”), то обратиться к нему можно только через квадратные скобки dogs[myDog].
Добавление и удаление свойств
Добавьте в объект dogs свойство с именем driving и значением “Сибирский хаски”. Удалите свойство “guard” из dogs. Выведите вновь добавленное и удалённое свойства через alert.
var dogs = {
running: “Арабская борзая”,
hunter: “Лабрадор”,
guard: “Московская-сторожевая”
}// ваш код
Показать решение
Добавление метода
- Определите никак не связанную с приведенными объектами dog_1 и dog_2 функцию testBreed, которая будет выводить породу (breed), тип (a type) и вес (the weight) собаки.
- Присвойте функцию testBreed свойству sayAbout для обоих объектов.
- Запустите функцию testBreed для каждого из объектов.
var dog_1 = {
breed: “Алабай”,
“a type”: “собака-компаньон”,
“the weight”: “50 кг”
}var dog_2 = {
breed: “Бультерьер”,
“a type”: “бойцовская”,
“the weight”: “36 кг”
}// ваш код
Показать решение
Источник