Содержание
- 2. Контакты: [email protected] http://vk.com/kirill.surkov
- 3. Литература Данная презентация служит методикой изучения предмета и содержит основные понятия ООП и их представление на
- 4. Базовые понятия структурного программирования Переменная – ячейка данных Тип данных – допустимые значения и операции переменной
- 5. Модуль Модуль – единица разработки, применения и поставки. public static class Helper // модуль { public
- 6. Разграничение доступа к модулям Разграничение доступа к модулю осуществляется с помощью ключевых слов: public – доступ
- 7. Объект – динамический модуль Объект – динамический модуль, у которого может быть много экземпляров. Описание динамического
- 8. Исключение Исключение – событие и объект с информацией об ошибке. Исключение создается: Аппаратно – в результате
- 9. Обработка исключений Обработка исключения: try { // операторы, подверженные исключениям } catch { // операторы обработки
- 10. Классификация исключений Распознавание класса исключения: try { // арифметические вычисления } catch (DivideByZeroException e) { //
- 11. Защита ресурсов от исключений Защита ресурсов от исключения: // запрос ресурса try { // работа с
- 12. Защита ресурсов от исключений С помощью оператора using: using (var stream = new FileStream(...)) { stream.Read(buffer,
- 13. Базовые понятия объектно-ориентированного программирования Класс – тип данных для создания объектов Объект – экземпляр класса Метод
- 14. Класс и объект Класс – тип данных для создания объектов: public class DelimitedReader { public void
- 15. Метод Метод: public class DelimitedReader { public void AssignFields() { FileName = "MyFile.csv"; this.Delimiter = ';';
- 16. Конструктор и деструктор Конструктор и деструктор – особые методы: public class DelimitedReader { public DelimitedReader(string fileName,
- 17. Свойство Свойство – виртуальное поле: public class DelimitedReader { public bool Active { get { return
- 18. Свойство Свойство с автоматически создаваемым полем для него: public class DelimitedReader { public char Delimiter {
- 19. Индексатор Индексатор – особое свойство, предоставляющее доступ к объекту как к массиву: public class DelimitedReader {
- 20. Наследование – расширение класса Базовая абстракция объекта для чтения текста в табличном виде: public class TableReader
- 21. Наследование – расширение класса Расширение базового класса для чтения таблиц формата TXT: public class FixedReader :
- 22. Наследование – расширение класса Смысл расширения типа заключается в том, чтобы определить переменную базового типа и
- 23. Наследование – контроль и приведение типа Контроль типа осуществляется с помощью оператора is: TableReader reader; ...
- 24. Базовый класс Object Базовый класс System.Object содержит общие для всех объектов методы: namespace System { public
- 25. Виртуальный метод Виртуальный метод – переопределяемый в производных классах метод. Вызов виртуального метода осуществляется в соответствии
- 26. Механизм вызова виртуального метода Схема вызова obj.ToString(); // obj ссылается на объект класса Point Сегмент стека
- 27. Абстрактный виртуальный метод Абстрактный метод – это виртуальный метод без реализации. Для такого метода в таблице
- 28. Динамический виртуальный метод В некоторых языках программирования разновидностью виртуального метода является динамический метод: public class TableReader
- 29. Виртуальное свойство Свойство можно сделать виртуальным. Тогда в производных классах перекрываются его методы чтения и записи:
- 30. Запрет на расширение Наследование от класса можно запретить с помощью ключевого слова sealed – «запечатанный». «Запечатывание»
- 31. Делегат – ссылка на метод Можно создать процедурную переменную, содержащую адрес метода. Предварительно для такой переменной
- 32. Пример применения делегата public delegate void NextLineDelegate(); public class DelimitedReader { private NextLineDelegate fNextLineDelegate; public DelimitedReader(string
- 33. Событие – список делегатов Бывает необходим список переменных-делегатов для уведомления целого множества объектов. Он называется событием.
- 34. Пример применения события public delegate void NextLineDelegate(); public class DelimitedReader { public event NextLineDelegate NextLineEvent; public
- 35. Принятый формат для событий Для событий существует удобный стандартный тип-делегат, который решено применять для всех событий:
- 36. Обновленный пример применения события public class DelimitedReader { public event EventHandler NextLineEvent; public DelimitedReader(string fileName) {
- 37. Методы регистрации события Определяя событие, можно указать методы, которые будут вызываться при добавлении делегата в список
- 38. Интерфейс = объект – реализация Из класса TableReader можно выделить программный интерфейс: public interface ITableReader {
- 39. Интерфейс Интерфейс не может содержать поля, конструкторы, деструктор. Все элементы интерфейса по определению являются общедоступными (public)
- 40. Интерфейс Объект может поддерживать несколько интерфейсов, что эффективно заменяет множественное наследование: Object TableReader FixedReader DelimitedReader IDisposable
- 41. Интерфейс Объект может поддерживать несколько интерфейсов, что эффективно заменяет множественное наследование: public class TableReader : Object,
- 42. Механизм вызова метода через интерфейс Схема вызова intf.NextLine(); // intf ссылается на объект TableReader Сегмент стека
- 43. Шаблон – параметризованный класс Можно определить класс, параметризованный типом данных. Такой класс называют шаблоном или обобщенным
- 44. Шаблон При описании шаблона можно ограничить возможные значения параметра-типа: public class List where T: ListItem {
- 45. Атрибут – метаданные Атрибуты – это метаданные, которые можно назначать элементам программы. Эти метаданные представляются как
- 46. Атрибут – механизм рефлексии С помощью механизма рефлексии для каждого элемента программы – класса, поля, свойства,
- 47. Дополнительные понятия Переменная с непостоянным типом значений Анонимная функция
- 48. Переменная с непостоянным типом значений Для поддержки скриптовых языков в язык C# внесли возможность создавать переменные
- 49. Анонимная функция public delegate int FunctionDelegate(int x); public class Program { public void Test() { CallFunction(this.Negate);
- 50. Анонимная функция Вместо вручную объявленного делегата: public delegate int FunctionDelegate(int x); можно использовать готовый шаблон: public
- 51. Анонимная функция Создадим процедурную переменную, которой присвоим ссылку на анонимную функцию: Func func = (int x)
- 52. Приемы программирования Итератор – абстрактный продвигаемый вперед указатель на элемент контейнера Одиночка – объект, создаваемый в
- 53. Итератор (Iterator/Enumerator) Итератор – абстрактный продвигаемый вперед указатель на элемент контейнера: public interface IEnumerator { object
- 54. Итератор Для удобства пользования итератором существует оператор foreach: public static void Test(List args) { foreach (string
- 55. Итератор Если функция возвращает значение типа IEnumerable, то такую функцию можно сделать итератором: public static void
- 56. Одиночка (Singleton) Одиночка – объект, создаваемый в единственном экземпляре. Пример – статическое (static) поле класса, инициализированное
- 57. Одиночка public class Config { private static volatile Config instance = null; private static readonly object
- 58. Заместитель Прокси (Proxy) или Суррогат (Surrogate) – легковесный объект-заместитель, перенаправляющий вызовы к замещаемому тяжеловесному объекту. Обертка
- 59. Прокси (Proxy) / Суррогат (Surrogate) Прокси (Proxy) или Суррогат (Surrogate) – легковесный объект-заместитель, перенаправляющий вызовы к
- 60. Прокси / Суррогат public interface IWebClient { void Request(); } public class WebClient : IWebClient {
- 61. Прокси / Суррогат Прокси (Proxy) – легковесный объект-заместитель, перенаправляющий вызовы к замещаемому тяжеловесному объекту (обычно через
- 62. Обертка (Wrapper) / Декоратор (Decorator) Обертка (Wrapper) или Декоратор (Decorator) – объект-заместитель, содержащий в себе замещаемый
- 63. Обертка (Wrapper) / Декоратор (Decorator) Обертка (Wrapper) или Декоратор (Decorator) – объект-заместитель, содержащий в себе замещаемый
- 64. Адаптер (Adapter) Адаптер – объект, реализующий некоторый интерфейс путем обращения к другому объекту через свойственный ему
- 65. Адаптер interface IConfig { string GetValue(string key); } class DictionaryConfig : IConfig // Адаптер для Dictionary
- 66. Адаптер Адаптер – объект, реализующий некоторый интерфейс путем обращения к другому объекту через свойственный ему интерфейс.
- 67. Компоновщик (Composite) Компоновщик – объект, компонующий набор других однотипных объектов в одно целое. public class CompositeStream
- 68. Компоновщик Компоновщик – объект, компонующий набор других однотипных объектов в одно целое.
- 69. Мост (Bridge) Мост – делегирование функциональности метода другому объекту через интерфейс, чтобы иметь возможность независимо менять
- 70. Мост Мост через интерфейс создается к отдельной иерархии классов. public class LowQualityPaintDevice : IPaintDevice { public
- 71. Мост Мост – делегирование функциональности метода другому объекту через интерфейс, чтобы иметь возможность независимо менять реализацию
- 72. Наблюдатель (Observer/Listener) Наблюдатель – объект, получающий уведомления от других объектов. Наблюдатель применяется в языках программирования, не
- 73. Посетитель (Visitor) Посетитель – объект, передаваемый другому объекту для вызова своих методов. Например, в библиотеке визуальных
- 74. Фабричный метод (Factory Method) Фабричный метод – виртуальный метод, создающий объект.
- 75. Фабрика классов (Factory) Цель фабрики классов – создание объектов. Почему не создать его просто через new?
- 77. Скачать презентацию










































































Киберспорт
Создание и оформление презентации (задания)
Путеводитель по политическим философам
Базы данных. Введение в SQL. Типы данных. Индексы. CRUD-операции
Паспорт проекта Обнаружение цвета
Средство подготовки презентации Microsoft PowerPaint
Сервис постановки и достижения целей AchieveMe
Взлом пароля пользователя программного продукта 1С: Предприятие 8
Как подать заявку на проект Министерство школьной моды РДШ
Видеомэйкинг. От нуба – тянущимся к знаниям
Алгоритмы и модели трассировки печатных соединений в ЭА
Python 6.0.2022_ООП
Поиск информации в интернете, возможность дистанционного образования, проведение досуга
Логика в ЕГЭ
Способы и стили заливки фигур
Kia how to электронная подпись
(для учащихся 4-8 классов)
Определение ключевых полей
Что такое журналистика?
Программа Tinkercad и сервис Circuits. Практическая работа № 2
Безопасный город. Умный город
Sport programming assist. Simply submitting code
Объёмный NPC
Технологии Microsoft NET.Services
Інтернет та його історія виникнення
Решение задач на составление разветвляющихся алгоритмов
Программирование на языке Паскаль. Циклы с условием
Модель Курамото