- •Об’єктно-орієнтоване програмування
- •Содержание
- •Тема 1. Понития ооа, ооПр и ооп Лекция 1. Объектная модель и принципы ее организации
- •1. Понития ооа, ооПр и ооп и их отличия от подходов структурного проектирования
- •2. Основные понятия ооп
- •Тема 2. Основы программирования на языке с# .Net Лекция 2. Введение в программирование на с# .Net
- •1. Роль платформы .Net
- •2. Первая программа на c# и основные приемы работы в системе ms Visual Studio
- •3. Структура программы
- •4. Собственные пространства имен
- •Лекция 3. Система типов данных языка с#
- •1. Система типов данных языка с#
- •2. Преобразование типов
- •Лекция 4. Выражения и операторы языка с#
- •1. Выражения
- •2. Операторы
- •2.1. Операторы ввода и вывода
- •2.2. Операторы ветвления
- •2.3. Операторы цикла
- •2.3. Оператор безусловного перехода
- •Лекция 5. Массивы
- •1. Основные понятия
- •2. Одномерные массивы
- •3. Многомерные массивы
- •4. Класс Array
- •5. Класс Random
- •Лекция 6. Структуры и перечисления
- •1. Структуры
- •3. Перечисления
- •Лекция 7. Символы и строки
- •1. Символы char
- •2. Неизменяемые строки string
- •3. Изменяемые строки
- •Лекция 8. Файловая система
- •1. Основные сведения
- •2. Работа с каталогами
- •2.1. Абстрактный класс FileSystemInfo
- •2.2. Класс DirectoryInfo
- •2.3. Класс Directory
- •3. Работа с файлами
- •3.1. Класс Filelnfo
- •3.2. Класс File
- •Тема 3. Принципы парадигмы объектно-ориентированного программирования Лекция 9. Пронципы объектно-ориентированного программирования
- •1. Основные понятия
- •2. Роль инкапсуляции
- •3. Роль наследования
- •4. Роль полиморфизма
- •Лекция 10-11. Классы и объекты
- •1. Основные понятия
- •2. Функциональные элементы класса
- •2.1. Данные: поля и константы
- •2.2. Методы
- •2.3. Конструкторы
- •2.4. Деструкторы
- •2.5. Свойства
- •2.6. Индексаторы
- •3. «Один класс – один файл»
- •Лекция 12-13. Класы коллекций
- •1. Основные понятия
- •2. Класс Stack
- •3. Класс Queue
- •4. Класс ArrayList
- •Тема 4. Инкапсуляция и скрытие информации Лекция 14. Инкапсуляция как средство структурирования систем
- •1. Основные понятия
- •2. Основная концепция инкапсуляции
- •Тема 5. Перегрузка операторов и функций Лекция 15. Модификатор доступа переменных и функций
- •1. Основные понятия
- •2. Примеры использования модификаторов доступа
- •Лекция 16. Перегрузка операторов и функций
- •1. Операции класса
- •2. Унарные операции
- •3. Бинарные операции
- •4. Операции преобразования типов
- •Implicit operator целевой_тип (параметр) //неявное преобразование
- •Тема 6. Наследование и полное использование кода Лекция 17. Основы наследования
- •1. Иерархия классов
- •2. Основы наследования
- •3. Использование защищенного доступа
- •Лекция 18. Вызов базового конструктора
- •1. Наследование конструкторов
- •2. Вызов базового конструктора
- •Тема 7. Многоуровневое наследование. Конфликт имен и потоков классов Лекция 19-20. Многоуровневое наследование и его недостатки
- •1. Многоуровневая иерархия
- •2. Переменные базового класса и производного класса
- •3. Виртуальные методы
- •4. Абстрактные методы и классы
- •Лекция 21. Классы потоков вводв и вывода
- •1. Основные понятия
- •2. Стандартный поток ввода
- •3. Стандартный поток вывода
- •4. Стандартный поток вывода сообщений об ошибках
- •5. Программа StdStreams
- •Лекция 22. Классы потоков для работы с файлами, памятью и сетью
- •1. Класс BufferedStream
- •2. Класс FileStream
- •3. Класс MemoryStream
- •4. Класс NetworkStream
- •5. Класс CryptoStream
- •1. Основы полиморфизма
- •Тема 8. Полиморфизм и виртуальные функции Лекция 23. Основы полиморфизма и преимущества его использования
- •2. Преимущества использования полиморфизма
- •Лекция 24. Динамическое связывание виртуальных методов
- •1. Виртуальные методы
- •2. Вызов базового метода
- •Тема 9. Интерфейсы Лекция 25. Интерфейсы
- •1. Основные понятия
- •2. Пример опредиления интерфейса и работы с ним
- •Лекция 26. Стандартные интерфейсы .Net
- •1. Стандартный интерфейс iComparable
- •2. Перегрузка операций отношения с помощью метода CompareTo
- •3. Стандартные интерфейсы iEnumerable и iEnumerator
- •Тема 10. Объектно-ориентированное программирование Windows-приложений на основе WindowsForms Лекция 27-28. Библиотеки классов реализации функциональных возможностей Windows
- •1. Формы
- •6. Компиляция программы
- •7. События в Windows-приложениях
- •7.1. События мыши
- •Лекция 29. Разработка графических интерфейсов пользователя
- •1. Общтие сведения
- •2. Группы элементов управления
- •Лекция 30-31. Работа с даннями
- •1. Что такое реляционная база данных?
- •2. Модель объектов ado.Net
- •3. Подготовка ado.Net к работе в приложении
- •Лекция 32. Создание пакетов установки
- •1. Общие сведения
- •2. Создание пакетов установки
- •3.Создание простого пакета установки без библиотеки .Net Framework
Лекция 21. Классы потоков вводв и вывода
План:
Основные понятия
Стандартный поток ввода
Стандартный поток вывода
Стандартный поток вывода сообщений об ошибках
Программа StdStreams
1. Основные понятия
Приложению C# доступны 3 стандартных потока, которые всегда открыты: стандартный поток ввода, стандартный поток вывода и стандартный поток вывода сообщений об ошибках.
Все перечисленные выше потоки определены в классе Console. Вы можете получить на них ссылки с помощью статических свойств In, Out и Error.
2. Стандартный поток ввода
Стандартный поток ввода, который можно получить при помощи статического свойства In, определен как статический объект класса TextiReader. Этот класс содержит методы, предназначенные для ввода отдельных символов, строк и блоков текста.
Вот как программа может получить ссылку на стандартный поток ввода:
TextReader trIn = Console.In;
Чтобы ввести данные из стандартного потока ввода (по умолчанию связанного с клавиатурой компьютера), используйте один из методов, определенных для этого в классе TextReader.
В предыдущих примерах программ мы использовали метод Console. ReadLine, осуществляющий ввод символов из стандартного потока ввода. Аналогичный метод предусмотрен и в классе TextReader:
string s = trIn.ReadLine();
Этот оператор вводит текстовую строку с клавиатуры и сохраняет ее в переменной s.
В классе TextReader имеются и другие методы, предназначенные для ввода отдельных символов и блока символов.
Метод Read, не имеющий параметров, читает один символ и возвращает его как значение типа int. Если символов больше нет, метод возвращает значение -1. При возникновении ошибок создается исключение IOException, обработку которого необходимо предусмотреть.
3. Стандартный поток вывода
Стандартный поток вывода out создан на базе класса TextWriter, предназначенного для форматированного вывода данных различного типа с целью их визуального отображения в виде текстовой строки.
Дня того чтобы получить ссылку на стандартный поток вывода, используйте свойство Console.Out:
TextWriter twOut = Console.Out;
Далее, используя полученную ссылку, можно выводить данные с помощью одного из методов, определенных в классе TextWriter, например с помощью хорошо известного вам по предыдущим примерам программ метода WriteLine:
twOut.WriteLine("Запись в стандартный поток вывода");
Этот метод аналогичен методу Console. Wri teLine.
В классе TextWriter определено несколько реализаций метода Write с параметрами различных типов. Вот некоторые из них:
public virtual void Write(bool);
public virtual void Write(char);
public virtual void Write(char[]);
public virtual void Write(decimal);
public virtual void Write(double);
public virtual void Write(int);
public virtual void Write(long);
public virtual void Write(object);
public virtual void Write(float);
public virtual void Write(string);
public virtual void Write(uint);
public virtual void Write(ulong);
Как видите, вы можете записать в стандартный поток вывода текстовое представление данных различного типа, в том числе и класса object.
Метод WriteLine аналогичен методу Write, отличаясь лишь тем, что он добавляет к записываемой в поток строке символ перехода на следующую строку:
public virtual void WriteLine(bool);
public virtual void WriteLine(char);
public virtual void WriteLine(char[]);
public virtual void WriteLine(decimal);
public virtual void WriteLine(double);
public virtual void WriteLine(int);
public virtual void WriteLine(long);
public virtual void WriteLine(object);
public virtual void WriteLine(float);
public virtual void WriteLine(string);
public virtual void WriteLine(uint);
public virtual void WriteLine(ulong);
Реализация метода WriteLine без параметров записывает только символ перехода на следующую строку.
