Similar presentations:
Объектно-ориентированное программирование (ООП). Введение в ООП
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-gdpr19. 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 означает, что данный метод
класса является статическим, т.е. его можно
использовать без создания объекта класса.