- •Высокоуровневые методы программирования
- •Принцип сокрытия внутренней структуры объекта от пользователя. Понятие инкапсуляции. Пример инкапсуляции в среде проектирования и программирования Windows-приложений Visual Basic.
- •Возможность использования одних и тех же методов разными классами объектов. Понятие полиморфизма. Пример полиморфизма в среде проектирования и программирования Windows-приложений Visual Basic.
- •Типы переменных Visual Basic
- •Операторы цикла. Цикл со счетчиком и цикл с условием. Примеры использования циклических операторов на языке Visual Basic.
Высокоуровневые методы программирования
Понятие объектно-ориентированной среды (ООС) проектирования и программирования. Объект и класс объектов – основные понятия проектирования и программирования в объектно-ориентированных средах. Понятие события. Свойства объектов как качественные и количественные характеристики объектов. Процедуры-события и методы классов объектов – встроенные стандартные программы среды проектирования и программирования Windows-приложений Visual Basic .
Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов)
Класс — это такая абстракция множества предметов реального мира, что
Предметы в этом множестве - объекты имеют одни и те же характеристики
Все объекты подчинены и согласованы с одним и тем же набором правил и линий поведений
Методы - процедуры и функции, связанные с классом. Они определяют действия, которые можно выполнять над объектом такого типа, и которые сам объект может выполнять.
Свойства объекта - псевдополя, доступные для чтения и/или записи. Свойства внешне выглядят как поля и используются аналогично доступным полям (с некоторыми исключениями), однако фактически при обращении к ним происходит вызов методов доступа. Таким образом, свойства можно рассматривать как «умные» поля данных, сопровождающие доступ к внутренним данным объекта какими-либо дополнительными действиями (например, когда изменение координаты объекта сопровождается его перерисовкой на новом месте).
Событие — это сообщение, посылаемое объектом о том, что что-то произошло. События реализуются при помощи делегатов, которые являются формой объектно-ориентированного указателя функции, позволяющего вызывать функцию не прямо, а путем ссылки на нее.
Принцип сокрытия внутренней структуры объекта от пользователя. Понятие инкапсуляции. Пример инкапсуляции в среде проектирования и программирования Windows-приложений Visual Basic.
Инкапсуляция - это механизм, который объединяет данные и код, манипулирующий зтими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В объектно-ориентированном программировании код и данные могут быть объединены вместе; в этом случае говорят, что создаётся так называемый "чёрный ящик". Когда коды и данные объединяются таким способом, создаётся объект.
Внутри объекта коды и данные могут быть закрытыми (private). Закрытые коды или данные доступны только для других частей этого объекта. Таким образом, закрытые коды и данные недоступны для тех частей программы, которые существуют вне объекта. Если коды и данные являются открытыми, то, несмотря на то, что они заданы внутри объекта, они доступны и для других частей программы. Характерной является ситуация, когда открытая часть объекта используется для того, чтобы обеспечить контролируемый интерфейс закрытых элементов объекта.
На самом деле объект является переменной определённого пользователем типа. Может показаться странным, что объект, который объединяет коды и данные, можно рассматривать как переменную. Однако применительно к объектно-ориентированному программированию это именно так. Каждый элемент данных такого типа является составной переменной.
Public Class Person
Private m_sFirstName as String
Private m_sLastName as String
Public Property FirstName() as String
Get
FirstName = m_sFirstName
End Get
Set(ByVal Value as String)
m_sFirstName = Value
End Set
End Property
Public Property LastNameO as String
Get
LastName = m_sLastName
End Get
Set(ByVal Value as String)
m_sLastName = Value
End Set
End Property
Readonly Property FullNameO as String
Get
FullName = m_sLastName & ", " & m_sFirstName
End Get
End Property
End Class
Возможность определения новых объектов на основе уже существующего объекта более высокого уровня путем передачи им значений некоторых свойств этого объекта. Понятие наследования. Пример наследования в среде проектирования и программирования Windows-приложений Visual Basic.
Наследование (inheritance) - это процесс, посредством которого один объект может приобретать свойства другого. Точнее, объект может наследовать основные свойства другого объекта и добавлять к ним черты, характерные только для него. Наследование является важным, поскольку оно позволяет поддерживать концепцию иерархии классов (hierarchical classification). Применение иерархии классов делает управляемыми большие потоки информации. Например, подумайте об описании жилого дома. Дом - это часть общего класса, называемого строением. С другой стороны, строение - это часть более общего класса - конструкции, который является частью ещё более общего класса объектов, который можно назвать созданием рук человека. В каждом случае порождённый класс наследует все, связанные с родителем, качества и добавляет к ним свои собственные определяющие характеристики. Без использования иерархии классов, для каждого объекта пришлось бы задать все характеристики, которые бы исчерпывающи его определяли. Однако при использовании наследования можно описать объект путём определения того общего класса (или классов), к которому он относится, с теми специальными чертами, которые делают объект уникальным. Наследование играет очень важную роль в OOP.
Допустим, необходимо определить классы
для обработки платежных ведомостей.
Можно определить универсальный класс
Payroll
, содержащий метод RunPayroll
,
который рассчитывает платежную ведомость
на неделю. Затем можно использовать
Payroll
в качестве базового класса
для более специализированного класса
BonusPayroll
, который может использоваться
при распределении премий между
сотрудниками.
Класс BonusPayroll
может наследовать
и переопределять метод PayEmployee
,
определенный в базовом классе Payroll
.
В следующем примере определяется базовый
класс Payroll,
и производный класс
BonusPayroll
, который переопределяет
наследуемый метод PayEmployee
. Процедура
RunPayroll
создает и затем передает
объект Payroll
и объект BonusPayroll
в функцию Pay
, которая выполняет
метод PayEmployee
для обоих объектов.
Const BonusRate As Decimal = 1.45D
Const PayRate As Decimal = 14.75D
Class Payroll
Overridable Function PayEmployee(
ByVal HoursWorked As Decimal,
ByVal PayRate As Decimal) As Decimal
PayEmployee = HoursWorked * PayRate
End Function
End Class
Class BonusPayroll
Inherits Payroll
Overrides Function PayEmployee(
ByVal HoursWorked As Decimal,
ByVal PayRate As Decimal) As Decimal
' The following code calls the original method in the base
' class, and then modifies the returned value.
PayEmployee = MyBase.PayEmployee(HoursWorked, PayRate) * BonusRate
End Function
End Class
Sub RunPayroll()
Dim PayrollItem As Payroll = New Payroll
Dim BonusPayrollItem As New BonusPayroll
Dim HoursWorked As Decimal = 40
MsgBox("Normal pay is: " &
PayrollItem.PayEmployee(HoursWorked, PayRate))
MsgBox("Pay with bonus is: " &
BonusPayrollItem.PayEmployee(HoursWorked, PayRate))
End Sub