Читайте также: |
|
Чтобы вы лучше поняли, как проектируются и создаются объекты, давайте усовершенствуем наш класс «отдел кадров»:
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.
Дата добавления: 2015-07-20; просмотров: 81 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Полиморфизм | | | Использование класса |