Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Высокоуровневые методы программирования.docx
Скачиваний:
7
Добавлен:
23.09.2019
Размер:
189.53 Кб
Скачать

Высокоуровневые методы программирования

  1. Понятие объектно-ориентированной среды (ООС) проектирования и программирования. Объект и класс объектов – основные понятия проектирования и программирования в объектно-ориентированных средах. Понятие события. Свойства объектов как качественные и количественные характеристики объектов. Процедуры-события и методы классов объектов – встроенные стандартные программы среды проектирования и программирования Windows-приложений Visual Basic .

Объект — некоторая сущность в виртуальном пространстве, обладающая определённым состоянием и поведением, имеет заданные значения свойств (атрибутов) и операций над ними (методов)

Класс — это такая абстракция множества предметов реального мира, что

  1. Предметы в этом множестве - объекты имеют одни и те же характеристики

  2. Все объекты подчинены и согласованы с одним и тем же набором правил и линий поведений

Методы - процедуры и функции, связанные с классом. Они определяют действия, которые можно выполнять над объектом такого типа, и которые сам объект может выполнять.

Свойства объекта - псевдополя, доступные для чтения и/или записи. Свойства внешне выглядят как поля и используются аналогично доступным полям (с некоторыми исключениями), однако фактически при обращении к ним происходит вызов методов доступа. Таким образом, свойства можно рассматривать как «умные» поля данных, сопровождающие доступ к внутренним данным объекта какими-либо дополнительными действиями (например, когда изменение координаты объекта сопровождается его перерисовкой на новом месте).

Событие — это сообщение, посылаемое объектом о том, что что-то произошло. События реализуются при помощи делегатов, которые являются формой объектно-ориентированного указателя функции, позволяющего вызывать функцию не прямо, а путем ссылки на нее.

  1. Принцип сокрытия внутренней структуры объекта от пользователя. Понятие инкапсуляции. Пример инкапсуляции в среде проектирования и программирования 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

  1. Возможность определения новых объектов на основе уже существующего объекта более высокого уровня путем передачи им значений некоторых свойств этого объекта. Понятие наследования. Пример наследования в среде проектирования и программирования 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