Transcript EPAM Systems www.epam.com
Программирование на языке C# Основы ООП
План занятия • • • • • Принципы ООП Абстрагирование Инкапсуляция Наследование Полиморфизм
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 1. Всё является объектом.
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 2. Каждый объект является представителем (экземпляром) класса, который выражает общие свойства объектов.
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 3. В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 4. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 5. Каждый объект имеет независимую память, которая состоит из других объектов.
www.epam.com
EPAM Systems
Принципы ООП Шесть принципов Алана Кея: 6. Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.
www.epam.com
EPAM Systems
Абстрагирование • • Выделяете только те факторы, которые нужны для решения задачи Отсекайте все лишнее
www.epam.com
EPAM Systems
Инкапсуляция • • Пользователь (прикладной программист) не должен менять внутреннее состояние объекта – он не знает, как это делается!!!
Поля и методы делятся на внутренние и интерфейсные.
а x, y r length b
www.epam.com
c
EPAM Systems
Объявление класса [атрибуты] [спецификаторы] class имя_класса [: предки] { [атрибуты] [спецификаторы] тип имя_поля [= значение]; [атрибуты] [спецификаторы] тип имя_метода(параметры) { тело метода } [атрибуты] [спецификаторы] тип имя свойства { [спецификаторы] get { тело } [спецификаторы] set { тело } } } www.epam.com
EPAM Systems
Пример public class Circle { public double x public double y; private double r; public double R { get { return r; } set { if(value >= 0) r = value; } } public double GetLength() { return 2 * Math.PI * r; } } www.epam.com
EPAM Systems
Спецификаторы доступа • Методы и поля – private (по умолчанию) – public – internal – static – protected (наследование) – protected internal (наследование) – abstract (только для методов, полиморфизм) – new (только для методов, наследование) – override (только для методов, полиморфизм)
www.epam.com
EPAM Systems
Спецификаторы доступа • Класс – internal (по умолчанию) – public – static – sealed (наследование) – abstract (полиморфизм)
www.epam.com
EPAM Systems
Контактная информация:
Александр Кузнецов
Инструктор EPAM Systems, Inc.
Адрес: Саратов, Рахова, 181 Email: [email protected] http://www.epam.com
www.epam.com
EPAM Systems