Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ProgBasics_lec04_systems_complexity

.pdf
Скачиваний:
9
Добавлен:
14.04.2015
Размер:
467.08 Кб
Скачать

Объектно-ориентированное программирование

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

Базовый элемент – объекты

Каждый объект – экземпляр класса (instance)

Классы организованы в иерархии (отношение “is a”)

Объект

Поведение

Данные

изменение

характеризуют

состояния

состояние

Абстрагирование и инкапсуляция

Абстрагирование – создание модели, обладающей лишь существенными особенностями.

Таким образом, объект – некая абстракция.

Детали реализации объекта скрыты, он используется через его интерфейс — «внешний облик».

Сокрытие деталей реализации – инкапсуляция.

Итак, объект — это инкапсулированная абстракция с четко определенным интерфейсом.

Класс

Класс – некое множество объектов, имеющих общую структуру и общее поведение.

Класс – контракт между абстракцией и её «клиентами» - объектами.

public class BankAccount

{

private decimal _value = decimal.Zero; private Person _person = null;

public BankAccount(Person person)

{

_person = person;

}

public Person Person { get { return _person; } } public decimal Value { get { return _value; } }

public void Transfer(BankAccount targetAccount, decimal sum)

{

//...

}

public void Fill(decimal sum)

{

if (sum < decimal.Zero)

throw new ArgumentException("sum is less than zero."); _value += sum;

}

}

Наследование

Фигура

Круг

Прямоугольник

Треугольник

 

 

 

 

 

 

 

 

 

 

 

 

Правильный Равнобедренный

Наследование

Обеспечивает многократное использование кода

наследники корректируют или дополняют поведение

Исключение дублирования кода

Упрощает

модификацию программ

создание новых программ на основе существующих

Позволяет создавать иерархии

public class VipBankAccount : BankAccount

{

public void SendWeeklyPresent()

{

base.Fill(1000);

}

}

Пример иерархии

Классы .NET

Все классы .NET имеют общего предка — класс object, и организованы в единую иерархическую структуру.

Классы логически сгруппированы в пространства имен, которые служат для упорядочивания имен классов и предотвращения конфликтов имен: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]