EPAM Systems www.epam.com

Download Report

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