Развитие программирования. Лекция 1

Содержание

Слайд 2

Развитие программирования

Структурное программирование

С

ООП

С++

Java

Microsoft

С#

Развитие программирования Структурное программирование С ООП С++ Java Microsoft С#

Слайд 3

Платформа .NET

Платформа .NET состоит из общеязыковой среды выполнения (среды CLR) и библиотеки

Платформа .NET Платформа .NET состоит из общеязыковой среды выполнения (среды CLR) и библиотеки классов .NET Framework.
классов .NET Framework.

Слайд 5

ООП

Что это такое?

ООП Что это такое?

Слайд 6

Определение

Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются понятия

Определение Объе́ктно-ориенти́рованное программи́рование (ООП) — парадигма программирования, в которой основными концепциями являются
объектов и классов (либо, в менее известном варианте языков с прототипированием, — прототипов)

Слайд 8

3 концепции*

Все языки OOP основаны на трёх основополагающих концепциях

ИНКАПСУЛЯЦИЯ

НАСЛЕДОВАНИЕ

ПОЛИМОРФИЗМ

3 концепции* Все языки OOP основаны на трёх основополагающих концепциях ИНКАПСУЛЯЦИЯ НАСЛЕДОВАНИЕ ПОЛИМОРФИЗМ

Слайд 9

ИнКАПСУЛяция

это механизм, который объединяет данные и код, манипулирующий этими данными, а также

ИнКАПСУЛяция это механизм, который объединяет данные и код, манипулирующий этими данными, а
защищает и то, и другое от внешнего вмешательства или неправильного использования.

Слайд 10

ИнКАПСУЛяция наглядно

ИнКАПСУЛяция наглядно

Слайд 11

ИнКАПСУЛяция наглядно

ИнКАПСУЛяция наглядно

Слайд 12

Абстракция

придание объекту характеристик, которые отличают его от всех других объектов, четко определяя

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

Слайд 13

Абстракция

Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик существенных

Абстракция Фундаментальная идея состоит в разделении несущественных деталей реализации подпрограммы и характеристик
для корректного ее использования. Такое разделение может быть выражено через специальный «интерфейс», сосредотачивающий описание всех возможных применений программы

Слайд 14

Абстракция

Автосалон

Страховая компания

Владелец

ГИБДД

Абстракция Автосалон Страховая компания Владелец ГИБДД

Слайд 15

Классы и объекты

Классы и объекты

Слайд 16

Классы

это элемент, описывающий абстрактный тип данных и его частичную или полную реализацию.

Классы это элемент, описывающий абстрактный тип данных и его частичную или полную

Наряду с понятием «объекта» класс является ключевым понятием в ООП.

Слайд 17

Классы

Классы

Слайд 18

Объект класса

это переменная от класса
<Название класса> <имя переменной> = new <Название класса>(<параметры>);

Объект класса это переменная от класса = new ( );

Слайд 19

Что есть у классов

Поля
Константы
Свойства
Методы
Конструкторы и деструктор
События
Индексаторы
Операторы
Вложенные типы

Что есть у классов Поля Константы Свойства Методы Конструкторы и деструктор События Индексаторы Операторы Вложенные типы

Слайд 20

Поля

Поле - это переменная любого типа, которая объявлена непосредственно в классе

Поля Поле - это переменная любого типа, которая объявлена непосредственно в классе

Слайд 21

Поля

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

Поля Поля инициализируются непосредственно перед вызовом конструктора для экземпляра объекта. Поля могут
отмечены модификаторами доступа
Также при необходимости поле может быть объявлено с модификатором static.

Слайд 23

Константы

Константы предназначены для описания таких значений, которые не должны изменяться в программе.

Константы Константы предназначены для описания таких значений, которые не должны изменяться в
Для определения констант используется ключевое слово const:

Слайд 24

Свойства

это член, предоставляющий гибкий механизм для чтения, записи или вычисления значения закрытых

Свойства это член, предоставляющий гибкий механизм для чтения, записи или вычисления значения
полей. Свойства фактически представляют собой специальные методы, называемые методами доступа. Это позволяет легко получать доступ к данным и помогает повысить безопасность и гибкость методов.

Слайд 25

Свойства

У свойства могут быть два ключевых слова set и get

Свойства У свойства могут быть два ключевых слова set и get

Слайд 26

Свойства. Пример

Свойства. Пример

Слайд 27

Свойства. Особенности

Свойства. Особенности

Слайд 28

Методы

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

Методы это блок кода, содержащий ряд инструкций. Программа инициирует выполнение инструкций, вызывая
и указывая все аргументы, необходимые для этого метода. В C# все инструкции выполняются в контексте метода.

Слайд 29

Сигнатура метода

Методы объявляются в классе или в структуре путем указания модификаторов доступа,

Сигнатура метода Методы объявляются в классе или в структуре путем указания модификаторов
необязательных модификаторов, (abstract или sealed), возвращаемого значения, имени метода и всех параметров этого метода. Все эти части вместе представляют собой сигнатуру метода.

Слайд 30

Методы

Методы

Слайд 31

Модификатор out и ref

Модификатор out и ref

Слайд 32

Необязательные параметры

C# позволяет использовать необязательные параметры. Для таких параметров нам необходимо объявить

Необязательные параметры C# позволяет использовать необязательные параметры. Для таких параметров нам необходимо объявить значение по умолчанию.
значение по умолчанию.

Слайд 33

Именованные параметры

Именованные параметры позволяют нарушать порядок передачи параметров в функцию.

Именованные параметры Именованные параметры позволяют нарушать порядок передачи параметров в функцию.

Слайд 34

Модификаторы доступа

public
protected
internal
protected internal
private (по умолчанию)

Модификаторы доступа public protected internal protected internal private (по умолчанию)

Слайд 35

Зачем они? public

Общий (public) доступ является уровнем доступа с максимальными правами. Ограничений

Зачем они? public Общий (public) доступ является уровнем доступа с максимальными правами.
доступа к общим членам не существует.

Слайд 36

Зачем они? private

Закрытый (private) доступ является уровнем доступа с минимальными правами. Доступ

Зачем они? private Закрытый (private) доступ является уровнем доступа с минимальными правами.
к закрытым членам можно получить только внутри тела класса, в которой они объявлены.

Слайд 37

Пример

Пример

Слайд 38

Типы данных

Типы данных

Слайд 39

Типы данных

Ссылочные
(классы, массивы, интерфейсы, делегаты)

типы-значения (элементарные типы, перечисления, структуры)

Типы данных Ссылочные (классы, массивы, интерфейсы, делегаты) типы-значения (элементарные типы, перечисления, структуры)

Слайд 40

Перечисления

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

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

Слайд 41

Перечисления

Перечисления

Слайд 42

Структурные типы

Структуры делятся на следующие категории:
Числовые типы
Целочисленные типы
Типы с плавающей запятой
decimal
bool
Структуры, определяемые

Структурные типы Структуры делятся на следующие категории: Числовые типы Целочисленные типы Типы
пользователем.

Слайд 43

Типы данных

Типы данных

Слайд 44

Привидение типов

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

Привидение типов Используемые в программе типы характеризуются собственными диапазонами значений, которые определяются
типов – в том числе и размером области памяти, предназначенной для кодирования значений соответствующего типа.

Слайд 45

Привидение типов

int a = 10;
short d = 30;
long l = 40005;
int df

Привидение типов int a = 10; short d = 30; long l
= a + d +l;
System.Convert

Слайд 46

Упаковка и распаковка

Упаковка представляет собой процесс преобразования типа значения в тип object

Упаковка и распаковка Упаковка представляет собой процесс преобразования типа значения в тип
или в любой другой тип интерфейса, реализуемый этим типом значения.
Когда тип значения упаковывается средой CLR, она создает оболочку значения внутри System.Object и сохраняет ее в управляемой куче.

Слайд 47

Boxing и unboxing

Упаковка используется для хранения типов значений в куче со сбором

Boxing и unboxing Упаковка используется для хранения типов значений в куче со
мусора.
int i = 123;
object o = i;

Слайд 48

Boxing и unboxing

Распаковка является явным преобразованием из типа object в тип значения.
int

Boxing и unboxing Распаковка является явным преобразованием из типа object в тип
i = 123;
object o = i;
int j = (int)o;

Слайд 49

Это важно

Это важно

Слайд 50

Область видимости

Переменные можно объявлять в любом месте блока. Точка объявления переменной

Область видимости Переменные можно объявлять в любом месте блока. Точка объявления переменной
в буквальном смысле соответствует месту ее создания.
Новый блок – новая область видимости. Объекты, объявляемые во внутренних блоках, не видны во внешних блоках.
Блок ограничивается { }

Слайд 51

Область видимости

Объекты, объявленные в методе и во внешних блоках, видны и

Область видимости Объекты, объявленные в методе и во внешних блоках, видны и
во внутренних блоках.
Одноименные объекты во вложенных областях конфликтуют.
Объекты, объявляемые в блоках одного уровня вложенности в методе, не видны друг для друга. Конфликта имен не происходит.

Слайд 52

Пример

Пример

Слайд 53

Объявление и инициализация

В чем разница?
int a;
int a = 8;
Console.WriteLine(a.toString());

Объявление и инициализация В чем разница? int a; int a = 8; Console.WriteLine(a.toString());

Слайд 54

Переполнение

int a = 2000000000;
int b = 2000000000;
Console.WriteLine("a = {0}\nb = {1}\n", a,

Переполнение int a = 2000000000; int b = 2000000000; Console.WriteLine("a = {0}\nb
b);
Console.WriteLine("a + b = {0}", a + b);

Слайд 55

Переполнение

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

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

Арифметические типы имеют ограниченные размеры. Поэтому любая арифметическая операция может привести к переполнению.

Слайд 56

checked и unchecked

checked и unchecked

Слайд 57

checked и unchecked

unchecked
{
w = x+y;
}
checked
{
z = x+w;
}

checked и unchecked unchecked { w = x+y; } checked { z = x+w; }
Имя файла: Развитие-программирования.-Лекция-1.pptx
Количество просмотров: 22
Количество скачиваний: 0