Студопедия

Главная страница Случайная страница

Разделы сайта

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






Создание класса






Чтобы вы лучше поняли, как проектируются и создаются объекты, давайте усовершенствуем наш класс «отдел кадров»:

1. Создайте новый проект типа Standard EXE.

2. Добавьте модуль класса. Для этого следует щелкнуть правой кнопкой мыши в окне проекта и выбрать из контекстного меню команду Add > Class Module.

3. В окне свойств задайте свойству Name значение clsHR.

4. Добавьте в секцию (General)(Declarations) окна программы объявления следующих свойств:

Option Explicit

Public Manager As Boolean

Public Dept As Integer

Public EmpID As Integer

Public EmpName As String

Public EmpDept As Integer

Public EmpPerformance As String

Public Reason As String

 

5. Наш класс должен выдавать личные дела сотрудников, поэтому в него следует добавить открытый метод:

 

Public Function GetRecord() As Boolean

If Manager = True Then

If Dept = GetDept() Then

Empname = GetEmpName()

EmpPerformance = GetPerfEval()

Reason = " "

GetRecord = True

Else

Reason = " Доступ к личным делам сотрудников " _

& " из других отделов запрещен"

GetRecord = False

End If

Else

Reason = " Доступ к личным делам сотрудников _

& " разрешен только менеджерам"

GetRecord = False

End If

End Function

 

6. Добавьте метод для определения отдела, в котором работает сотрудник:

 

Public Function GetDept() As Integer

Select Case EmpID

Case Is = 1

GetDept = 1

Case Is = 2

GetDept = 1

Case Is = 3

GetDept = 2

Case Else

GetDept = 0

End Select

End Function

 

7. Добавьте метод для получения имени сотрудника:

 

Public Function GetEmpNameO As String

Select Case EmpID

Case Is = 1

GetEmpName = " Джон Доу"

Case Is = 2

GetEmpName = " Джейн Доу"

Case Is = 3

GetEmpName = " Трокмортон"

Case Else

GetEmpName = " "

End Select

End Function

 

ПРИМЕЧАНИЕ На этом простейшем примере видно, каким образом класс ограничивает доступ к своим данным. Конечно, в реальной ситуации следовало бы обратиться к базе данных и сравнить значение в поле, вместо того чтобы «зашивать» данные внутри самого класса.

 

8. Нам также понадобится метод для получения оценки сотрудника:

Public Function GetPerfEval() As String

Select Case EmpID

Case Is = 1

GetPerfEval = " Бывает и лучше! "

Case Is = 2

GetPerfEval = " Неплохо работает в коллективе"

Case Is = 3

GetPerfEval = " Удовлетворительно"

Case Else

GetPerfEval = " Неизвестно"

End Select

End Function

 

9. Остается лишь проследить за правильной инициализацией свойств класса. Добавьте следующий фрагмент:

 

Private Sub Class_Initialize()

Manager = False

Dept = 1

EmpID = 0

EmpName = " "

EmpDept = 0

EmpPerformance = " "

Reason = " "

End Sub

 

Вот и все, что требовалось сделать для создания класса. Мы создали семь свойств: Manager, Dept, EmpID, EmpName, EmpDept, EmpPerformance и Reason. Логическое свойство Manager показывает, является ли автор запроса менеджером. Свойство Dept определяет отдел, в котором он работает. Свойство EmpID определяет код сотрудника, личное дело которого вы хотите получить. Если оно будет предоставлено, в EmpName заносится имя сотрудника. Свойство EmpDept показывает, в каком отделе работает сотрудник. В свойстве EmpPerformance хранится оценка. Наконец, если в запросе было отказано, в свойстве Reason возвращаются сообщение об ошибке и обоснование отказа.

Помимо свойств класс HR содержит четыре метода. Обратите внимание — только метод Get Record () объявлен открытым. Доступ к личным делам разрешается лишь после правильной обработки запроса. Теперь класс обладает всеми необходимыми возможностями, и его можно использовать в приложении. Давайте создадим интерфейс для работы с классом HR.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.