Основные понятия Объектно-ориентированного программирования

Содержание

Слайд 2

2 подхода к программированию: объектный и структурный (процедурный) Причины появления ООП

2 подхода к программированию:
объектный и структурный (процедурный)
Причины появления ООП (история развития

технологии программирования)
Преимущества ООП –
автоматизация написания кода, легче работать с кодом.
Слайд 3

Класс — в объектно-ориентированном программировании, представляет собой шаблон для создания объектов,

Класс — в объектно-ориентированном программировании, представляет собой шаблон для создания объектов,

обеспечивающий начальные значения состояний: инициализацию полей-переменных и реализацию поведения функций или методов.
Класс — сложная структура (тип) данных, включающая помимо описания данных описание процедур и функций, которые можно выполнить над одним из элементов класса - объектом.
Класс- пользовательский тип данных, включающий данные и методы их обработки.

Класс определяет
Атрибуты (данные, свойства),
Методы (функции, действия над объектом) События

Слайд 4

Объект класса – экземпляр или элемент класса, имеющий конкретные значения свойств и конкретные реализации работы методов.

Объект класса – экземпляр или элемент класса, имеющий конкретные значения свойств

и конкретные реализации работы методов.
Слайд 5

Примеры: Класс Животные Свойства: Четвероногие Водоплавающие Летающие Кожный покров (перья, шерсть,

Примеры:
Класс Животные
Свойства:
Четвероногие
Водоплавающие
Летающие
Кожный покров (перья, шерсть, чешуя,..)
Методы
Двигаются
Спят

В C# описание класса может иметь

следующий вид:
сlass Animal
{
}

Примеры объектов:
кот; ‰
корова; ‰
горилла; ‰
рыба
другие объекты.

Animal Barsik=new Animal();

Слайд 6

Свойства класса Животные Вид животного (Kind of animal). ‰ Рост (Height).

Свойства класса Животные
Вид животного (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;

// заголовок конструктора класса
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 =

Описание конкретного объекта класса
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

Инкапсуляция- возможность ограничения доступа одних компонентов программы к другим, реализуемую через

Инкапсуляция- возможность ограничения доступа одних компонентов программы к другим, реализуемую через

модификаторы доступа (public, protected, private).

Private – «объекты только этого класса могут обращаться к данному полю». ‰
Public – «объекты любого класса могут обращаться к этому полю». ‰
Protected – «только объекты классов-наследников могут обращаться к полю». Если построен класс Animal, то другой класс, например, класс Mammal (Млекопитающее), может объявить себя наследником класса Animal
Защита внутреннего содержимого классов, отдельных свойств классов или их методов называется инкапсуляция.

Слайд 12

В начало описания поля добавим модификаторы доступа class Animal { public

В начало описания поля добавим модификаторы доступа

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

Наследование – предполагает возможность использования функционала родительского класса в дочернем.


Наследование – предполагает возможность использования функционала родительского класса в дочернем.