Similar presentations:
Основные понятия Объектно-ориентированного программирования
1.
Основные понятияОбъектноориентированного
программирования
2.
2 подхода к программированию:объектный и структурный
(процедурный)
Причины появления ООП (история
развития технологии
программирования)
Преимущества ООП –
автоматизация написания кода, легче
работать с кодом.
3.
Класс — в объектно-ориентированномпрограммировании, представляет собой шаблон
для создания объектов, обеспечивающий
начальные значения состояний: инициализацию
полей-переменных и реализацию поведения
функций или методов.
Класс — сложная структура (тип) данных,
включающая помимо описания данных описание
процедур и функций, которые можно выполнить
над одним из элементов класса - объектом.
Класс- пользовательский тип данных,
включающий данные и методы их обработки.
Класс определяет
Атрибуты (данные, свойства),
Методы (функции, действия над объектом)
События
4.
Объект класса – экземпляр илиэлемент класса, имеющий конкретные
значения свойств и конкретные
реализации работы методов.
5.
Примеры:Класс Животные
Свойства:
Четвероногие
Водоплавающие
Летающие
Кожный покров (перья,
шерсть, чешуя,..)
В C# описание
класса может
иметь следующий
вид:
сlass Animal
{
}
Animal Barsik=new Animal();
Методы
Двигаются
Спят
Примеры объектов:
кот;
корова;
горилла;
рыба
другие объекты.
6.
Свойства класса ЖивотныеВид животного (Kind of animal).
Рост (Height).
Длина (Length).
Количество лап (Number of legs).
Окрас (Color).
Наличие хвоста (Has a tail).
Является ли млекопитающим (Is a mammal).
При рассмотрении свойств этих животных вы можете присвоить
значения каждому из них: Kind of animal = «Cat» («Кот»).
Height = 50 cm (большой котяра!).
Length = 110 cm (это рысь скорее, а не домашняя кошка!).
Number of legs = 4.
Color = «Black» (черный).
Name=“Барсик”.
Has tail = true (истина).
Is mammal = true (истина).
В C# эти свойства называются полями, для каждого определен тип
данных.
7.
// заголовок конструктора классаclass Animal
{
string kindOfAnimal;
string name;
int numberOfLegs;
int height;
int length;
string color;
bool hasTail;
bool isMammal;
}
8.
Описание конкретного объекта классаAnimal Barsik = new Animal();
Barsik.kindOfAnimal = “Cat”;
Barsik.name = “Кот Барсик”;
Barsik.numberOfLegs = 4;
Barsik.height = 50;
Barsik.length = 110;
Barsik.color = “Black”;
Barsik.hasTail = true;
Barsik.isMammal = true;
9.
Модификаторы доступаПри объявлении полей так, как показано выше, мы можем
решить, должны ли другие классы иметь к ним доступ.
Иногда важно делать поля закрытыми (private) — для того,
чтобы другой класс не помещал неверные значения в поля и
не нарушал работу программы.
Использование полей private, protected и public определяет
степень защиты объектов класса
по умолчанию задается значение
private, если модификатор
отсутствует.
10.
На рисунке изображены дети, живущие в одной семье. Обратитевнимание на то, как обеспечивается безопасность каждого из них.
Малютка Света закрыта (private) в комнате — ее не выпускают из
дома, и она имеет наиболее высокий уровень защиты. С ней могут
общаться люди, обладающие наибольшим доверием.
Борису разрешается находиться как на переднем, так и на заднем
дворе, но он по-прежнему в некоторой степени защищен
(protected).
Толя, старший ребенок, является открытым (public) для других, и
любой желающий может общаться с ним.
11.
Private – «объекты только этого класса могутобращаться к данному полю».
Public – «объекты любого класса могут
обращаться к этому полю».
Protected – «только объекты классовнаследников могут обращаться к полю». Если
построен класс Animal, то другой класс,
например, класс Mammal (Млекопитающее),
может объявить себя наследником класса
Animal
Защита внутреннего содержимого классов, отдельных
свойств классов или их методов называется
инкапсуляция.
Инкапсуляция- возможность ограничения доступа одних
компонентов программы к другим, реализуемую через
модификаторы доступа (public, protected, private).
12.
В начало описания поля добавиммодификаторы доступа
class Animal
{
public string kindOfAnimal;
public string name;
public int numberOfLegs;
public int height;
public int length;
public string color;
bool hasTail;
protected bool isMammal;
private bool spellingCorrect;
}
class Zoo
{
Animal a = new Animal ();
// Следующая строка будет выполнена успешно, поскольку
классу “Zoo”
// разрешено обращаться к открытым полям в классе “Animal”
a.kindOfAnimal = “Kangaroo”;
// Обе следующие строки НЕ будут выполнены, поскольку
классу “Zoo”
// не разрешено обращаться к закрытым или защищенным полям
a.isMammal = false;
// Попытка обращения к защищенному свойству
a.spellingCorrect = true;
// Попытка обращения к закрытому свойству
}
13.
Наследование – предполагает возможностьиспользования функционала родительского класса в
дочернем.
14.
Полиморфизм – возможностьреализации разного функционала для
методов с одинаковым названием,
вызываемых в разных экземплярах
одного класса.