- •1. Основные понятия объектно-ориентированного программирования как современной технологии создания программ.
- •Абстракция
- •Наследование
- •Полиморфизм
- •3. Достоинства ооп. Соотношение понятий объекта и класса при объектно-ориентированной разработке программ. Соотношение понятий объекта и класса
- •Достоинства ооп
- •Синтаксис и пример для c#:
- •Элементы класса:
- •6. Производные классы. Наследование свойств как принцип ооп.
- •8. Виртуальные методы. Поддержка полиморфизма.
- •9. Событийная модель как неотъемлемая часть современного программирования. Создание события. Рекомендации по использованию событий.
- •Сфера применения
- •Создание события
- •Механизм работы событий
- •10. Применение объектно-ориентированной технологии программирования в различных языках и средах программирования.
3. Достоинства ооп. Соотношение понятий объекта и класса при объектно-ориентированной разработке программ. Соотношение понятий объекта и класса
Класс является моделью ещё не существующей сущности (объекта). Фактически он описывает устройство объекта, являясь своего рода чертежом. А объект – это экземпляр класса. Класс является абстракцией, а объект – это конкретная сущность, материализованная в некотором адресном пространстве вычислительной системы
В некоторых исполняющих системах класс также может представляться некоторым объектом при выполнении программы посредством динамической идентификации типа данных (в C# есть такая возможность).
Достоинства ооп
1. Использование при программировании понятий, близких к предметной области.
2. Возможность успешно управлять большими объемами исходного кода благодаря инкапсуляции, то есть скрытию деталей реализации объектов и упрощению структуры программы.
3. Возможность многократного использования кода за счет наследования.
4. Сравнительно простая возможность модификации программ.
5.Возможность создания и использования библиотек классов.
4. Понятие класса и синтаксис объявления класса (в одном из известных вам языков, например, C++, C#). Элементы класса.
Класс - это сложный тип данных, в котором объединены элементы данных (поля) и методы, обрабатывающие эти данные и выполняющие операции по взаимодействию с окружающей средой.
Синтаксис и пример для c#:
[спецификатор доступа][модификатор класса]
class имя_класса [:базовый класс]
{
тело_класса
}
Пример:
public static class WasiaTheTerrible : IvanGrozniy
{
тело класса }
Элементы класса:
константы – хранят неизменяемые значения, связанные с классом;
поля – содержат данные класса (могут быть объектами др. классов);
методы – функции; реализуют вычисления или другие действия, выполняемые классом или экземпляром;
свойства – определяют характеристики класса в совокупности со способами их задания и получения, то есть методами записи и чтения
конструкторы и деструкторы – специальные методы, реализующие действия по инициализации объекта или класса и действия по их уничтожению;
индексаторы – обеспечивают возможность доступа к элементам класса по их порядковому номеру;
операции – задают действия с объектами с помощью знаков операций;
события – определяют уведомления, которые может генерировать класс;
типы – это типы данных, внутренние по отношению к классу.
5. Функции - методы класса. Синтаксис описания, параметры методов, вызов (в одном из известных Вам языков, например, C++, C#).
Методы – это функции, реализующие вычисления или другие действия, выполняемые классом или его экземпляром. Через параметры в методы передаются данные, которые не инкапсулированы в классе, но требуются для работы алгоритма, реализованного в методе. Методы могут возвращать (а могут и не возвращать) значение. Так же в некоторых языках программирования предусмотрена возможность получения измененного значения переменной при передаче ее в метод через параметры по ссылке или по адресу. В языке C# такая возможность реализуется с помощью ключевых слов ref и out; в С++ - с помощью непосредственной передачи по ссылке или по адресу.
Синтаксис объявления метода для C#:
[спецификатор доступа][модификатор метода]
тип_возвращаемого_значения имя_метода (список_параметров)
{
тело_метода;
}
Пример объявления метода для C#:
public class SomeClass
{
***
public static int SomeMethod(int a, string str)
{
return (int)str.Length / a;
}
***
}
В примере – имеем некоторый класс и видим один открытый статичный метод.
Пример вызова данного метода для C#:
***
int А = SomeClass.SomeMethod(2, “abcd”);
***
После того, как метод отработает, в переменной А окажется значение 2.
Существуют особые методы: конструкторы (вызываются при создании объекта), деструкторы (вызываются при уничтожении объекта), акцессоры (методы записи и чтения полей), операции, события и пр.