Объектно-ориентированное программирование (ООП)
Требования к курсу
Литература
Литература
Структурное программирование
Основные идеи ООП
Основные идеи ООП
Основные идеи ООП
Инкапсуляция
Инкапсуляция
Инкапсуляция
Инкапсуляция
Наследование
Полиморфизм
Наследование и полиморфизм
Рейтинг GitHub
IEEE Spectrum’s 2021 Ranking
C#
Особенности С#
Синтаксис описания класса в С#
Элементы класса (компоненты класса, member)
Обращение к полям и методам
Классы
Пример вызова метода
Стандартные классы
Пространства имен
Пространство имен System
Использование пространства имен
Использование пространства имен
Структура программы на С#
Собственное пространство имен
Собственное пространство имен
Классы в программе
Метод Main
Метод Main
3.50M
Category: programmingprogramming

Объектно-ориентированное программирование (ООП). Введение в ООП

1. Объектно-ориентированное программирование (ООП)

Профессор кафедры ИКСП, д.ф.-м.н., профессор
Шульга Татьяна Эриковна
5 корпус, 209 ауд.
[email protected]

2. Требования к курсу

1.
2.
3.
4.
Студент выполнил задания по программированию на языке С#
(проверяется в ходе практических занятий, см методичку в ИОС)
Студент свободно формулирует в письменной форме основные понятия и
определения дисциплины (проверяется на экзамене, см. список основных
понятий дисциплины в ИОС).
Студент сдал итоговый тест (проверяется на экзамене, см. образец теста в
ИОС).
Студент свободно формулирует в устной форме ответы на контрольные
вопросы по дисциплине (проверяется в ходе еженедельных опросов на
лекции, см. вопросы в каждой лекции)
В случае, если студент не продемонстрировал умение свободно формулировать в устной
форме ответы на контрольные вопросы по дисциплине в ходе еженедельных опросов, но
условия 1-3 выполнены, то для получения оценки «отлично» студент должен
предоставить правильный, развернутый ответ на два вопроса экзаменационного билета в
ходе экзамена.

3. Литература

Основная
1.
2.
3.
Шульга Т. Э. Фролова Н.Б. Объектно-ориентированное
программирование на языке С# [Электронный ресурс]:
учеб. пособие для направлений подготовки бакалавров
"Программная инженерия" и "Прикладная информатика»
ИОС СГТУ имени Гагарина Ю.А.
Шульга Т.Э. Лекции по дисциплине «Объектноориентированное программирование». 2020. [Электронный
ресурс] ИОС СГТУ имени Гагарина Ю.А.
Документация по C#. Microsoft [Электронный ресурс].
Режим доступа: https://docs.microsoft.com/ruru/dotnet/csharp/

4. Литература

Дополнительная
Залогова, Л. А. Основы объектно-ориентированного программирования на базе языка С#
[Электронный ресурс]: учебное пособие / Л. А. Залогова. — 2-е изд., стер. — СанктПетербург : Лань, 2020. — 192 с. — ISBN 978-5-8114-4757-2. — Текст : электронный //
Лань : электронно-библиотечная система. Режим доступа:
https://e.lanbook.com/book/126160.
Подбельский В.В. Язык Си# Базовый курс [Электронный ресурс] : учебное пособие.
Финансы и статистика, 2011. - . - ISBN 978-5-279-03497-0 384 с. Режим доступа:
http://www.studentlibrary.ru/book/ISBN9785279034970.html
Мейер, Б. Почувствуй класс. Учимся программировать хорошо с объектами и контрактами
: учебник[Электронный ресурс] / Б. Мейер ; под редакцией В. А. Биллига. — 3-е изд. —
Москва : Интернет-Университет Информационных Технологий (ИНТУИТ), Ай Пи Ар
Медиа, 2020. — 775 c. — ISBN 978-5-4497-0687-4. — Текст : электронный // Электроннобиблиотечная система IPR BOOKS : [сайт]. Режим доступа:
http://www.iprbookshop.ru/22435.
Кауфман, В. Ш. Языки программирования. Концепции и принципы [Электронный
ресурс]/ В. Ш. Кауфман. — 2-е изд. — Саратов : Профобразование, 2019. — 464 c. —
ISBN 978-5-4488-0137-2. — Текст : электронный // Электронно-библиотечная система IPR
BOOKS : [сайт]. — URL: http://www.iprbookshop.ru/88014.html
ПОЛНЫЙ СПИСОК см в ИОС

5.

Введение в ООП

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

структурное кодирование
модульное программирование
нисходящее проектирование
Небольшие эффективные программы

7. Основные идеи ООП

Инкапсуляция
Наследование
Полиморфизм
БОЛЬШИЕ НАДЕЖНЫЕ СИСТЕМЫ

8. Основные идеи ООП

Все является объектом
Объект
имеет определенные значения определенных
свойств
имеет определенное поведение

9. Основные идеи ООП

Вычисления осуществляются путем
взаимодействия между объектами

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

- это объединение данных с функциями их
обработки в сочетании со скрытием ненужной
для использования этих данных информации.
ФУНКЦИИ:
ДАННЫЕ:
Изменить
курс
Повысить
успев.
ГРУППА
Отчислиться
УСПЕВ.
и т.д.
Изменить
ФИО
ФИО
ВУЗ
КУРС

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

Принцип инкапсуляции в ООП реализуются с
помощью механизма классов.
Класс описывает
общие для всех объектов класса свойства
общее для всех объектов класса поведение
Свойства=Данные:
•ФИО
•ДАТА РОЖДЕНИЯ
•ПОЛ
•ВУЗ
•ФАКУЛЬТЕТ
•СПЕЦИАЛЬНОСТЬ
•КУРС
•ГРУППА
•СРЕДНЯЯ
УСПЕВАЕМОСТЬ
•и т.д.
Класс СТУДЕНТ
Поведение=Функции:
•Перевестись на след
курс
•Быть отчисленным
•Повысить
успеваемость
•Перевестись на
другую
специальность

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

Каждый объект является представителем
класса
Класс
СТУДЕНТ
Объекты класса
СТУДЕНТ

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

КЛАСС
повышает надежность программ
повышает степень абстракции программ
обеспечивает независимую разработку отдельных
частей (классов) программы
+
+
=

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

– это возможность создания иерархии классов, в которой
потомки (производные классы, наследники) получают
элементы своих предков (родителей, базовых классов), могут
их изменять и добавлять новые.
Производный класс: СТУДЕНТ
Базовый класс: ЧЕЛОВЕК
Производный класс:
ПРЕПОДАВAТЕЛЬ
Производный
класс: СТУДЕНТ
МАГИСТРАТУРЫ

15. Полиморфизм

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

16. Наследование и полиморфизм

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

17. Рейтинг GitHub

https://octoverse.github.com/

18. IEEE Spectrum’s 2021 Ranking

https://spectrum.ieee.org/top-programming-languages/#toggle-gdpr

19. C#

Язык разрабатывался под руководством Андреаса Хейлсберга,
сотрудника компании Microsoft

20. Особенности С#

C# является объектно-ориентированным языком;
C# создавался и развивается параллельно с каркасом
Framework .Net и учитывает все его возможности;
C# является наследником языка С и C++, следовательно,
общий синтаксис, общие операторы языка облегчают
переход от языков С и С++ к C#;
сохранив основные черты своих родителей, язык стал проще
и надежнее;
Framework.Net поддерживает разнообразие типов
приложений на C#.

21. Синтаксис описания класса в С#

class имя_класса {список_элементов};
Класс является абстрактным типом
данных, определяемым пользователем, и
содержит описание данных и функций
для работы с этими данным.
Имя класса – имя нового типа данных

22. Элементы класса (компоненты класса, member)

ПОЛЯ
(данные-члены, элементы
данных)
МЕТОДЫ
(компонентные функции,
функции-члены)
Представляют собой
данные
Представляют собой функции
для работы с данными
Синтаксис описания полей в
целом соответствует
синтаксису описания
переменных
Синтаксис описания методов в
целом соответствует
синтаксису описания функций

23. Обращение к полям и методам

Для того чтобы обратиться к любому
элементу класса (полю или методу)
используют операцию уточненного имени
имя_класса.имя_элемента
или
имя_объекта_класса.имя_элемента

24. Классы

Программист может описывать собственные
классы и также может использовать
стандартные классы.
Например, для ввода-вывода данных для
консольных приложений в языке С#
используется стандартный класс с именем
Console из библиотеки классов .Net.
Для того чтобы использовать любой из его
методов в программе необходимо
использовать следующую запись:
Console.имя_метода([список параметров])

25. Пример вызова метода

Для вывода данных на экран используется
метод WriteLine.
Метод является переопределенным и может
использоваться с разными параметрами.
Для вывода строки на экран используется
метод WriteLine с параметром строковой
константы, например:
Console. WriteLine (“Hello, World”);

26. Стандартные классы

Платформа .Net содержит огромную
библиотеку классов, которые можно
использовать при программировании на
любом языке .Net:
базовые классы (классы ввода-вывода, обработка
строк и др.)
классы для работы с данными

27. Пространства имен

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

28. Пространство имен System

Любая программа использует пространство
имен System.
В этом пространстве имен определены
классы, обеспечивающие базовые функции
программы:
ввод-вывод,
математические операции,
управление памятью и др.
Например, класс Console описан именно в
пространстве имен System.

29. Использование пространства имен

Для того, чтобы в программе использовать
стандартный класс можно перед его именем
указать через точку имя пространства имен,
например,
System.Console.WriteLine("\nHello, World!\n");

30. Использование пространства имен

В начале программы рекомендуется
подключить соответствующее пространство
имеем с помощью директивы
using Имя_пространства_имен
Например, чтобы использовать класс Console
подключают пространство имен System:
using System;
Console. WriteLine (“Hello, World”);

31. Структура программы на С#

// Program.cs
/*Многострочный комметарий*/
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main()
{
Console.WriteLine("\nHello, World!");
Console.ReadKey();
}
}
}

32. Собственное пространство имен

C помощью ключевого слова namespace
создается собственное пространство имен
проекта.
В Visual Studio это имя пространства имен
будет по умолчанию совпадать с именем
проекта, однако его можно изменить.

33. Собственное пространство имен

Собственное пространство имен проекта
создается для того, что в нем можно было
описывать программные объекты (например,
классы) с любыми именами, не заботясь о
том, что объекты с такими именами
существуют в других пространствах имен.
Все объекты программы в данном
пространстве имен описываются внутри
операторах скобок языка C# {}.

34. Классы в программе

Любая программа на языке C# представляет
собой набор взаимодействующих между
собой классов, следовательно, должна
содержать хотя бы один класс.
При создании проекта в Visual Studio имя
класса будет по умолчанию совпадать с
именем файла исходного текса с
расширением .cs, однако его можно
изменить.

35. Метод Main

Каждая программа должна содержать метод
с именем Main, и работа программы
начинается с именно с выполнения этого
метода.
Любой метод в языке C#, как и функция в
языке С, состоит из заголовка и тела.
Заголовок метода должен в обязательном
порядке определять его тип, имя и в круглых
скобках список параметров (может быть
пустой).

36. Метод Main

static void Main()
void – тип метода
Main – имя
Параметров нет
Спецификатор static означает, что данный метод
класса является статическим, т.е. его можно
использовать без создания объекта класса.
English     Русский Rules