Похожие презентации:
Лекция 14 ООП(1)
1.
Лекция 14. Основныепринципы объектно ориентированного
программирования
2.
Базовые понятия:ООП – методология программирования, основанная на
представлении программы в виде совокупности объектов,
каждый из которых является экземпляром определённого
класса, а классы образуют иерархию наследования.
3.
Базовые понятияКласс – это:
1. абстрактный тип данных.
2. формальное описание группы объектов,
указывающее – какие характеристики и действия
имеют эти объекты.
4.
Базовые понятияОбъект – конкретный предмет, имеющий определенные
характеристики и способный выполнять определенные
действия.
Объект – отдельная сущность, обладающая собственными
свойствами и действиями, относящаяся к какой-либо
группе сущностей (классу).
Характеристики объекта называются полями, действия
называются методами.
5.
Базовые понятияКласс – абстрактный тип данных; некоторый шаблон, на
основе которого будут создаваться его экземпляры –
объекты.
В Си шарп классы объявляются с помощью ключевого
слова class.
[модификатор доступа] class [имя_класса]
{
//тело класса
}
6.
Модификаторы доступа для классовpublic – доступ к классу возможен из любого места
одной сборки либо из другой сборки, на которую есть
ссылка;
internal – доступ к классу возможен только из сборки,
в которой он объявлен.
7.
Базовые понятияСборка – готовый функциональный модуль в виде exe
либо dll файла (файлов), который содержит
скомпилированный код для .NET. Сборка предоставляет
возможность повторного использования кода.
Пример объявления классов Student и Pupil
8.
Члены классаКлассы в Си-шарп могут содержать:
−
−
−
−
−
−
−
−
−
поля;
константы;
свойства;
конструкторы;
методы;
события;
операторы;
индексаторы;
вложенные типы.
9.
Модификатор доступа для членов класса−
public – доступ к члену возможен из любого места одной сборки,
либо из другой сборки, на которую есть ссылка;
−
protected – доступ к члену возможен только внутри класса, либо в
классе-наследнике (при наследовании);
−
internal – доступ к члену возможен только из сборки, в которой
он объявлен;
−
private – доступ к члену возможен только внутри класса;
−
protected internal – доступ к члену возможен из одной сборки,
либо из класса-наследника другой сборки.
10.
Инкапсуляция - это…Инкапсуляция – заключение данных (переменных) и
функциональности (методов) в классы
Поле – переменная, объявленная внутри класса.
Пример объявления:
11.
Создание объектовОбъявив класс, мы теперь можем создавать объекты.
Делается это при помощи ключевого слова new и имени
класса
12.
Доступ к объектуДоступ к членам объекта осуществляется при помощи
оператора точка «.»
13.
Константы (неизменные/постоянныезначения)
Константа – это переменная, значений которой нельзя
изменить. Константа объявляется с помощью ключевого
слова const.
Пример объявления константы:
private const double Pi = 3.14;
14.
15.
ИнкапсуляцияИнкапсуляция — это контроль доступа к полям и методам
объекта. (не только можно/неможно, но и различные
валидации, подгрузки, вычисления и прочее
динамическое поведение)
16.
АбстракцияАбстрактный класс— базовый класс, который можно
наследовать, но нельзя реализовывать.
17.
НаследованиеНаследование — механизм системы, который позволяет,
наследовать одними классами свойства и поведение
других классов для дальнейшего расширения или
модификации.
18.
ПолиморфизмПолиморфизм — свойство системы, позволяющее иметь
множество реализаций одного интерфейса.
19.
Геттеры и сеттерыГеттеры и сеттеры — это методы, задача которых
контролировать доступ к полям.
Геттер считывает и возвращают значение поля, а сеттер —
наоборот, принимает в качестве аргумента значение и
записывает в поле.
20.
АссоциацияВ полях объекта могут
храниться не только обычные
переменные, но и другие
объекты. А эти объекты могут в
свою очередь хранить какие-то
другие объекты. Это
отношение называется
ассоциацией.
21.
Виды ассоциации1. Композиция — жизненный цикл дочернего объекта
совпадает с жизненным циклом родительского.
2. Агрегация — жизненный цикл дочернего объекта не
зависит от жизненного цикла родительского, и может
использоваться другими объектами.
22.
23.
Перегрузка операторов24.
Перегрузка операторовПерегрузка операторов - реализация своего
собственного функционала этого оператора для
конкретного класса.
25.
Перегрузка унарного оператора26.
Перегрузка бинарного оператора27.
Перегрузка операторовМожно перегружать:
Унарные: +, -, !, ++, —, true, false
Бинарные: +, -, *, /, %, &, |, ^, <<, >>, ==, !=, <, >, <=, >=
Нельзя перегружать:
[], (), +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
28.
Перегрузка операторов29.
Перегрузка операторов30.
Перегрузка операторовТакже существует возможность перегрузки самого
операторного метода. Это означает что в классе может
быть несколько перегрузок одного оператора при
условии что входные параметры будут отличаться типом
данных
31.
Перегрузка операторного метода +32.
Перегрузка методов33.
Перегрузка методовИногда возникает необходимость создать один и тот же
метод, но с разным набором параметров. И в
зависимости от имеющихся параметров применять
определенную версию метода.
Такая возможность еще называется перегрузкой
методов (method overloading).
34.
Сигнатура методовИмя метода
Количество параметров
Типы параметров
Порядок параметров
Модификаторы параметров
35.
При перегрузке методы должны отличатьсяпо
Количеству параметров
Типу параметров
Порядку параметров
Модификаторам параметров
Программирование