Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему C#, объектно-ориентированное программирование

Содержание

План докладаОпределение понятия «класс»3 столпа ООП (определения)Их реализация в С#:ИнкапсуляцияНаследованиеПолиморфизмЖизненный цикл объектов
C#  объектно- ориентированное программированиеСанкт-Петербургский Университет, Математико-Механический Факультет, 2017Григорьева АнастасияВикторовна Nastya001@mail.ru План докладаОпределение понятия «класс»3 столпа ООП (определения)Их реализация в С#:ИнкапсуляцияНаследованиеПолиморфизмЖизненный цикл объектов Формальное определение класса в С#Класс – пользовательский тип данных, который состоит из К примеру, нам потребовалось создать модель сотрудника некоторой организации Указание области видимости на уровне типа:classpublicinternalМогут быть созданы и из своего двоичного 3 важнейших принципа ООП:Инкапсуляция:	как объекты прячут свое 						внутреннее устройство;Наследование:		как поддерживается 						повторное 								использование Упрощенно:Инкапсуляция:	способность скрывать детали объекта от пользователя.«Всё что может быть private должно быть Как эти принципы реализованы вС#(Синтаксис) Инкапсуляция Модификаторы области видимости:public	открытый член класса. Может быть прочитан или изменен откуда угодноprivate(по Принцип инкапсуляции предполагает, что ко внутренним данным объекта нельзя обратиться напрямую через Пусть у нас переменная, отвечающая за количество страниц в книге будет открытой, Чтобы решить проблему нужно сделать это поле закрытым (private илиprotected), а для 2. Определить именованное свойство:Теперь мы можем обращаться как к обычной, открытой переменной: Наследование Наследованиеis-a(включение- делегирование)has-a (классическое)Получают функциональность от базового класса-предка и дополняют новыми возможностямиОдин класс Классическое наследование в C#Некоторые замечания:Указатель на базовый класс «:»Наследуются только ОТКРЫТЫЕ и Запрет наследованияEmployeeSalesPersonManagerPTSalesPerson(part-time)Для запрещения наследования предусмотрено ключевое слово sealed Полиморфизм Переопределим реакцию объектов производных классов на метод базового класса. Метод в базовом классе, который будет переопределен должен быть объявлен как виртуальный Абстрактные классы и методыАбстрактный класс:Абстрактные методы могут быть в базовом классе без Жизненный цикл объектаСоздание: используется ключевое слово new, обращаемся к конструктору объекта.Уничтожение: обращаемся Вопросы?
Слайды презентации

Слайд 2 План доклада
Определение понятия «класс»
3 столпа ООП (определения)
Их реализация

План докладаОпределение понятия «класс»3 столпа ООП (определения)Их реализация в С#:ИнкапсуляцияНаследованиеПолиморфизмЖизненный цикл объектов

в С#:
Инкапсуляция
Наследование
Полиморфизм
Жизненный цикл объектов


Слайд 3 Формальное определение класса в С#
Класс – пользовательский тип

Формальное определение класса в С#Класс – пользовательский тип данных, который состоит

данных, который состоит из данных и функций для выполнения

действий с этими данными.

Слайд 4 К примеру, нам потребовалось создать модель сотрудника некоторой

К примеру, нам потребовалось создать модель сотрудника некоторой организации

организации



Слайд 5 Указание области видимости на уровне типа:
class

public
internal
Могут быть созданы

Указание области видимости на уровне типа:classpublicinternalМогут быть созданы и из своего

и из своего двоичного файла и из других двоичных

файлов.

(по умолчанию)
Могут быть созданы только из той сборки, в которой были определены.

public class Employee
{
...
}

internal class Employee
{
...
}

Атрибут видимости м.б. установлен для любого типа С#: класса, структуры, перечисления, интерфейса и делегата.


Слайд 6 3 важнейших принципа ООП:
Инкапсуляция: как объекты прячут свое внутреннее

3 важнейших принципа ООП:Инкапсуляция:	как объекты прячут свое 						внутреннее устройство;Наследование:		как поддерживается 						повторное

устройство;
Наследование: как поддерживается повторное использование кода;
Полиморфизм: как реализована поддержка выполнения нужного

действия в зависимости от типа передаваемого объекта;

Слайд 7 Упрощенно:
Инкапсуляция: способность скрывать детали объекта от пользователя.
«Всё что может

Упрощенно:Инкапсуляция:	способность скрывать детали объекта от пользователя.«Всё что может быть private должно

быть private должно быть private»
Наследование: возможность использовать уже созданный(базовый) класс

для того чтобы делать расширенные классы. У которых те же атрибуты и методы, что и у базового + свои.

Полиморфизм: (Poly = много, morph = форма) то, как классы, унаследованные от одного базового, выполняют методы своего класса-родителя.
Каждый по-своему
Как в базовом
Частично как в базовом + особенности и т.д.


Слайд 8 Как эти принципы реализованы в
С#
(Синтаксис)

Как эти принципы реализованы вС#(Синтаксис)

Слайд 9 Инкапсуляция

Инкапсуляция

Слайд 10 Модификаторы области видимости:


public
открытый член класса. Может быть прочитан

Модификаторы области видимости:public	открытый член класса. Может быть прочитан или изменен откуда

или изменен откуда угодно
private
(по умолчанию) закрытый член класса. Доступен только

из того объекта, в котором они определялись

protected защищенный член класса. Доступен напрямую из собственного класса и из всех дочерних классов.
«семейная тайна»


Слайд 11 Принцип инкапсуляции предполагает, что ко внутренним данным объекта

Принцип инкапсуляции предполагает, что ко внутренним данным объекта нельзя обратиться напрямую

нельзя обратиться напрямую через экземпляр этого объекта.
Вместо этого для

получения информации о состоянии объекта и изменений предлагается использовать специальные методы.

Рассмотрим пример:


Слайд 12 Пусть у нас переменная, отвечающая за количество страниц

Пусть у нас переменная, отвечающая за количество страниц в книге будет

в книге будет открытой, объявлена с ключевым словом public.

Тогда возникает проблема: полю можно присвоить любое значение, а организовать проверку этого значения в основном коде достаточно сложно.
Например, тут используется тип данных int. Максимальное значение для этого типа - достаточно большое число (2 147 483 647). Если в программе будет такой код, проблем со стороны компилятора не возникнет:

А можем и вообще отрицательное число страниц задать…


Слайд 13 Чтобы решить проблему нужно сделать это поле закрытым

Чтобы решить проблему нужно сделать это поле закрытым (private илиprotected), а

(private или
protected), а для обращения к нему воспользоваться одним

из двух способов:

1. Создать традиционную пару методов – один для чтения переменной а второй для её изменения:

Теперь:

Но можно так:


Слайд 14 2. Определить именованное свойство:
Теперь мы можем обращаться как

2. Определить именованное свойство:Теперь мы можем обращаться как к обычной, открытой

к обычной, открытой переменной:
Замечание 1: на

самом деле свойства всегда отображаются в «реальные» методы доступа и изменения. Первый начинается с приставки get_, второй с set_. (get_NumberOfPages() и set_NumberOfPages()).

Замечание 2: чтобы сделать свойство доступным только для чтения, достаточно пропустить в нем блок set

Замечание 3: статическим переменным нужны статические свойства (public static string Name).


Слайд 15 Наследование

Наследование

Слайд 16 Наследование
is-a
(включение- делегирование)
has-a (классическое)
Получают функциональность от базового класса-предка и дополняют новыми

Наследованиеis-a(включение- делегирование)has-a (классическое)Получают функциональность от базового класса-предка и дополняют новыми возможностямиОдин

возможностями
Один класс включает в свой состав другой и открывает

внешнему миру часть возможностей внутреннего класса.

Object

Shape

Circle

Hexagon


Слайд 17 Классическое наследование в C#
Некоторые замечания:
Указатель на базовый класс

Классическое наследование в C#Некоторые замечания:Указатель на базовый класс «:»Наследуются только ОТКРЫТЫЕ

«:»
Наследуются только ОТКРЫТЫЕ и PROTECTED члены базового класса
Нельзя производить

наследование от нескольких базовых классов

Определение:

Создаем объект производного класса :


Слайд 18 Запрет наследования
Employee
SalesPerson
Manager
PTSalesPerson
(part-time)
Для запрещения наследования предусмотрено ключевое слово sealed

Запрет наследованияEmployeeSalesPersonManagerPTSalesPerson(part-time)Для запрещения наследования предусмотрено ключевое слово sealed

Слайд 19 Полиморфизм

Полиморфизм

Слайд 20 Переопределим реакцию объектов производных классов на метод базового

Переопределим реакцию объектов производных классов на метод базового класса.

класса.


Слайд 21 Метод в базовом классе, который будет переопределен должен

Метод в базовом классе, который будет переопределен должен быть объявлен как

быть объявлен как виртуальный ( ключевое слово virtual)
Переопределяя виртуальный

метод в производном классе, мы заново определяем его, используя ключевое слово override

Если не переопределяем, реализуется как в базовом.

Вызов методов:


Слайд 22 Абстрактные классы и методы
Абстрактный класс:
Абстрактные методы могут быть

Абстрактные классы и методыАбстрактный класс:Абстрактные методы могут быть в базовом классе

в базовом классе без реализации по умолчанию. Каждый производный

класс обязан самостоятельно определить этот метод.

Производный класс в котором не будет замещен абстрактный метод сам считается абстрактным, и мы не сможем создавать объекты этого класса.


Слайд 23 Жизненный цикл объекта
Создание: используется ключевое слово new, обращаемся

Жизненный цикл объектаСоздание: используется ключевое слово new, обращаемся к конструктору объекта.Уничтожение:

к конструктору объекта.
Уничтожение: обращаемся к деструктору.
Вопрос: как понять, что

объект больше не нужен?

Ответ: Удаляем объект из памяти когда в текущей области видимости на него больше нет активных ссылок.

Удаление делается автоматически средой выполнения .NET

Когда заканчивается место в управляемой куче, запускается сборщик мусора.

Сначала деструктор, потом физическое удаление из памяти.


  • Имя файла: c-obektno-orientirovannoe-programmirovanie.pptx
  • Количество просмотров: 106
  • Количество скачиваний: 1