EPAM Systemswww.epam.com EPAM Systemswww.epam.com Программирование на языке C# Основы ООП
EPAM Systemswww.epam.com План занятия Принципы ООП Абстрагирование Инкапсуляция Наследование Полиморфизм
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 1.Всё является объектом.
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 2. Каждый объект является представителем (экземпляром) класса, который выражает общие свойства объектов.
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 3. В классе задаётся поведение (функциональность) объекта. Тем самым все объекты, которые являются экземплярами одного класса, могут выполнять одни и те же действия.
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 4. Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве.
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 5. Каждый объект имеет независимую память, которая состоит из других объектов.
EPAM Systemswww.epam.com Принципы ООП Шесть принципов Алана Кея: 6. Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия.
EPAM Systemswww.epam.com Абстрагирование Выделяете только те факторы, которые нужны для решения задачи Отсекайте все лишнее
EPAM Systemswww.epam.com Инкапсуляция Пользователь (прикладной программист) не должен менять внутреннее состояние объекта – он не знает, как это делается!!! Поля и методы делятся на внутренние и интерфейсные. аb c r x, y length
EPAM Systemswww.epam.com Объявление класса [атрибуты] [спецификаторы] class имя_класса [: предки] { [атрибуты] [спецификаторы] тип имя_поля [= значение]; [атрибуты] [спецификаторы] тип имя_метода(параметры) { тело метода } [атрибуты] [спецификаторы] тип имя свойства { [спецификаторы] get { тело } [спецификаторы] set { тело } }
EPAM Systemswww.epam.com Пример 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; }
EPAM Systemswww.epam.com Спецификаторы доступа Методы и поля – private (по умолчанию) – public – internal – static – protected (наследование) – protected internal (наследование) – abstract (только для методов, полиморфизм) – new (только для методов, наследование) – override (только для методов, полиморфизм)
EPAM Systemswww.epam.com Спецификаторы доступа Класс – internal (по умолчанию) – public – static – sealed (наследование) – abstract (полиморфизм)
EPAM Systemswww.epam.com Контактная информация: Александр Кузнецов Инструктор EPAM Systems, Inc. Адрес: Саратов, Рахова,