Visual Basic. «Классы: схемы объектов» .
1. Классы. l l Классы являются символьными представлениями объектов и описывают свойства, поля, методы и события, которые формируют объект таким же способом, как чертежи описывают элементы, составляющие здания. Отдельный класс может быть использован для создания необходимого количества объектов (так же, как по чертежу можно построить несколько зданий. ) Используя инкапсуляцию, классы контролируют доступ к элементам объектов (так же , как в чертеже указываются части здания, доступные для использования. )
2. Классы и объекты. l l l Термины класс и объект иногда используются в одном значении. Но, в действительности, классы описывают структуру объектов, а объекты являются используемыми экземплярами классов. Каждый экземпляр является точной копией класса, однако отличается от него. Поскольку объект является экземпляром - процесс создания объекта называется созданием экземпляра. Если использовать сравнение с чертежом, то класс является чертежом, а объект является зданием, построенным по нему. В большинстве случаев изменение данных в одном объекте не изменяет данные в других объектах. (Исключением являются общие члены класса, объявленные с помощью модификатора Shared, которые существуют независимо от определенных экземпляров класса. )
3. Инкапсуляция. l l l Инкапсуляция позволяет содержать группы связанных объектов и управлять доступом к ним. Инкапсуляция позволяет контролировать способы использования данных и процедур. Чтобы предотвратить выполнение методов класса или чтения и изменение данных в свойствах и полях внешними процедурами, можно использовать модификаторы доступа, например Private (указывает, что один или несколько объявленных элементов программирования являются доступными только из их контекста объявления, в том числе и из любых вложенных типов) или Protected (указывает, что один или несколько объявленных элементов программирования доступны только из своего собственного класса или из производного класса). Следует объявить внутренние сведения о классе как Private, чтобы предотвратить их использование вне класса. Этот прием называется скрытие данных, благодаря ему защищаются такие сведения клиента, как баланс счета. Данные класса должны изменятся или извлекаться только процедурами или методами Property (объявляет имя свойства и его процедуры, используемые для сохранения и извлечения значения свойства) — это одно из базовых правил инкапсуляции. Сокрытие сведений о реализации классов предотвращает их использование нежелательным образом и позволяет позже изменять такие элементы без риска возникновения проблем с совместимостью.
4. Наследование. l Как и структуры Visual Basic, классы можно использовать для определения типов данных, инкапсулирующих группу связанных элементов. Однако в отличие от структур, классы Visual Basic могут наследовать и расширять характеристики других классов: l Классы, служащие основой для новых - называются базовыми классами. Классы, являющиеся производными от базовых, называются производными классами. Которые наследуют все поля, свойства, методы и события базового класса. Это значит, что можно разрабатывать класс и выполнять его отладку один раз, а затем повторно использовать его в качестве основы для других классов. l
4. 1 Модификаторы наследования. Для поддержки наследования Visual Basic вводит следующие инструкции на уровне класса и модификаторы: l l l Инструкция Inherits определяет базовый класс. Модификатор Not. Inheritable не позволяет использовать класс в качестве базового класса. Модификатор Must. Inherit определяет, что класс предназначен только для использования в качестве базового класса. Невозможно создать напрямую экземпляры классов Must. Inherit; их можно создать только как экземпляры базового класса в производном классе.
5. Общие члены. l По умолчанию данные индивидуальны для каждого экземпляра класса, но возможны случаи, когда необходимо совместное использование отдельного элемента данных во всех объектах, созданных из класса. В таких случаях используйте модификатор Shared (указывает, что один или несколько объявленных элементов программирования связаны с классом или структурой целиком, а не с определенным экземпляром класса или структуры), чтобы значение переменной было общим для всех экземпляров класса (общие члены в других языках программирования иногда называют "статическими членами"). При использовании имени класса возможен прямой вызов общих методов без предварительного создания экземпляра класса.
6. Переобъявление. l Производные классы могут использовать ключевое слово Shadows (применяется для замещения) для объявления члена с именем, совпадающим с именем наследуемого члена. Тип данных переобъявленных членов не обязательно должен совпадать с типом данных переобъявляемого члена. Например, свойство может переобъявлять переменную типа Integer.
7. Этапы создания класса. l l l Первый этап - создание модуля класса (меню Project / Add Class Module). Второй этап - создание свойств, методов и событий класса, которые определяют функциональные возможности класса и находятся в коде модуля класса. Третий этап. Когда полностью готовый модуль класса включен в состав проекта, можно создавать объекты на основе класса. В Visual Basic доступ к объектам всегда производится посредством переменных.
8. Пример, раскрывающий сущность класса. Пусть пользовательский тип Book определен следующим образом: Type Book Name As String Author As String Page As Integer End Type Пусть также есть процедура Mes ( ): Sub Mes( ) Dim S S = "Название: "& Name & vb. Tab & "Автор" & Author Msg. Box S End Sub Представим себе, что эта процедура может быть элементом пользовательского типа Book: Type Book Name As String Author As String Page As Integer Mes ( ) End Type Определим экземпляр типа Book: Book. One As Book Присвоим значения: Book. One. Name = "Бегущая по волнам" Book. One. Author = "А. Грин" Book. One. Page = 100 Можно осуществить следующий вызов: Book. One. Mes ( )
9. Пример универсального класса. l В следующем примере используется универсальный класс. NET Framework System. Collections. Generic. List: Define the class for a customer. Public Class Customer Public Property Name As String ' Insert code for other members of customer structure. End Class
Лукина Анна 2 курс, специальность 080801, Группа СФЭФ 2 -1001