EPAM Systems www.epam.com

advertisement
Программирование на языке C#
Основы ООП
www.epam.com
EPAM Systems
План занятия
•
•
•
•
•
Принципы ООП
Абстрагирование
Инкапсуляция
Наследование
Полиморфизм
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
Инкапсуляция
• Пользователь (прикладной
программист) не должен
менять внутреннее
состояние объекта – он не
знает, как это делается!!!
• Поля и методы делятся на
внутренние и
интерфейсные.
length
r
x, y
а
b
c
www.epam.com
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: Alexander_Kuznetsov1@epam.com
http://www.epam.com
www.epam.com
EPAM Systems
Download