Главная страница

лр1-8. Н и я классов


Скачать 5.95 Mb.
НазваниеН и я классов
Дата28.01.2023
Размер5.95 Mb.
Формат файлаdocx
Имя файлалр1-8.docx
ТипДокументы
#908945
страница7 из 12
1   2   3   4   5   6   7   8   9   ...   12

Индивидуальное задание.

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

В качестве классов можно использовать иерархию классов, разработанную в лабораторной работе 5. Интерфейс спроектируйте и реализуйте самостоятельно.
7. Содержание отчета и его форма

Отчет по лабораторной работе должен содержать: 1. Номер и название лабораторной работы.

118

2. Цели лабораторной работы.
3. Ответы на контрольные вопросы.
4. Экранные формы и листинг программного кода, показывающие порядок выполнения лабораторной работы, и результаты, полученные в ходе её выполнения.

Отчет о выполнении лабораторной работы в письменном виде сдается преподавателю.
8. Контрольные вопросы

1. Что такое наследование реализации? Как описать синтаксически наследование реализации?

2. Для чего используется ключевое слово base?

3. Можно ли переопределить метод класса? Свойства класса? Данные класса?

4. Что такое наследование интерфейса? Укажите основные отличия от наследования реализации.

5. Для чего используется ключевое слово virtual? Для чего используется ключевое слово override?

6. Может ли один класс наследовать несколько классов? Несколько интерфейсов?

7. Внимательно изучите код примеров данной лабораторной работы и подумайте, каким образом специфицируются методы интерфейса public, private или protected? В чем причина применения именно такого модификатора доступа?
120

ЛАБОРАТОРНАЯ РАБОТА 7. ФАЙЛОВЫЙ ВВОД-ВЫВОД. РАБОТА С КАТАЛОГАМИ. РАБОТА С ФАЙЛАМИ.
1. Цель и содержание

Цель лабораторной работы: научиться использовать механизмы файлового ввода-вывода.

Задачи лабораторной работы:

научиться применять классы для работы с файлами;
научиться применять классы для работы с каталогами; – научиться использовать потоки ввода-вывода.
2. Формируемые компетенции

Лабораторная работа направлена на формирование следующих компетенций:

– способность к проектированию базовых и прикладных информационных технологий (ПК-11);

– способность разрабатывать средства реализации информационных технологий етодические, информационные, математические, алгоритмические, технические и программные) (ПК-12).
3. Теоретическая часть

3.1 Классы .NET Framework для реализации операций ввода-вывода.
Весь ввод и вывод в .NET Framework подразумевает использование потоков. Поток – это абстрактное представление последовательного устройства. Последовательное устройство это нечто такое, что хранит данные в линейной структуре и точно таким же образом обеспечивает доступ к ним: считывает или записывает по одному байту за одну единицу времени.

121

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

Для обработки файлов в С# необходима ссылка на пространство имен System.IO. При открытии файла создается объект, с которым ассоциируется поток. Потоки обеспечивают механизмы связи между файлами и программами.

Среда .NET Framework предоставляет все необходимые инструменты для эффективного использования файлов в приложениях.

Основные классы, необходимые программисту:
1. Object исходный базовый класс для всех классов платформы .NET Framework и корень иерархии типов.

2. File статический служебный класс, предоставляющий множество статических методов, которые дают возможность перемещать, создавать, копировать, удалять файлы, опрашивать и обновлять атрибуты, а также создавать объекты потоков FileStream.

3. Directory – статический служебный класс, предоставляющий множество статических методов для перемещения, копирования и удаления каталогов.

4. Path служебный класс, используемый для манипулирования путевыми именами.

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

6. FileInfo представляет физический файл на диске, имеет методы для манипулирования этим файлом. Для любого объекта, который читает или пишет в этот файл, должен быть создан объект Stream. Все методы FileInfo доступны из объектной переменной, поэтому, если необходимо выполнить

122

только одно действие, более эффективным может оказаться использование метода File, а не соответствующего экземпляра метода FileInfo. Для всех методов FileInfo требуется путь к файлу, с которым проводится операция. Все статические методы класса FileInfo выполняют проверку безопасности для всех методов. Если необходимо использовать объект неоднократно, рекомендуется использовать соответствующий метод экземпляра FileInfo, поскольку в этом случае проверка безопасности будет требоваться не всегда.

7. DirectoryInfo – представляет физический каталог на диске и предоставляет методы уровня экземпляра для манипулирования каталогом. Класс DirectoryInfо работает точно так же, как класс FileInfо. Это объект, представляющий отдельный каталог на машине. Подобно классу FileInfо, многие из вызовов методов дублируются между Directory и DirectoryInfo.

8. FileSystemInfo служит базовым классом для FileInfo и DirectoryInfo, обеспечивая возможность работы с файлами и каталогами одновременно, используя полиморфизм.

9. Stream – предоставляет универсальное представление последовательности байтов. Класс Stream является абстрактным базовым классом всех потоков.

10. FileStream представляет файл, который может быть записан, прочитан или то и другое.

11. TextReader представляет средство чтения, позволяющее считывать последовательные наборы знаков. Этот класс является абстрактным базовым классом для StreamReader, который считывает символы из потоков.

12. TextWriter представляет средство записи, позволяющее записывать последовательные наборы символов. Этот класс является абстрактным базовым классом для StreamWriter, который записывают символы в потоки.

13. StreamReader читает символьные данные из потока и может быть создан с использованием класса FileStream в качестве базового.

14. StreamWriter пишет символьные данные в поток и может быть создан с использованием класса FileStream в качестве базового.

123

15. Component – предоставляет базовую реализацию интерфейса IComponent и делает возможным совместное использование объектов разными приложениями.

16. FileSystemWatcher используется для мониторинга файлов и каталогов и представляет события, которые приложение может перехватить, когда в этих объектах происходят какие-то изменения.

Таким образом, эта система классов включает в себя классы для работы с файлами (File, FileInfo), каталогами (Directory, DirectoryInfo) и потоками (FileStream, StreamReader, StreamWriter).

В большинстве случаев для разработки бизнес-приложений достаточно лишь четырех классов для манипулирования файловой системой. Эти классы расположены пространстве имен System.IO и предназначены для работы с файловой системой компьютера, то есть для создания, удаления переноса файлов и каталогов.

Первые два типа Directory и Fi1е реализуют свои возможности с помощью статических методов, поэтому данные классы можно использовать без создания соответствующих объектов (экземпляров классов).

Следующие типы DirectoryInfo и FileInfo обладают схожими функциональными возможностями c Directory и Fi1е, но порождены от класса FileSystemInfo, поэтому реализуются путем создания соответствующих экземпляров классов.

Класс FileSystemInfo предоставляет базовый функционал. Значительная часть членов FileSystemInfo предназначена для работы с общими характеристиками файла или каталога (метками времени, атрибутами и т. п.). Рассмотрим некоторые свойства FileSystemInfo аблица 19.1).
Таблица 19.1 – Свойства класса FileSystemInfo.

Свойство

Описание

Attributes

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

124

Свойство

Описание

CreationTime

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

Exists

Может быть использовано для того, чтобы определить, существует ли данный объект файловой системы

Extension

Позволяет получить расширение для файла

FullName

Возвращает имя файла или каталога с указанием пути к нему в файловой системе

LastAccessTime

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

LastWriteTime

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

Name

Возвращает имя указанного файла. Это свойство доступно только для чтения. Для каталогов возвращает имя последнего каталога в иерархии, если это возможно. Если нет, возвращает полностью определенное имя


В FileSystemInfo предусмотрен набор методов. Например, метод Delete() – позволяет удалить объект файловой системы с жесткого диска, a Refresh() – обновить информацию об объекте файловой системы.
3.2 Классы для работы с каталогами файловой системы.
Класс DirectoryInfo наследует члены класса FileSystemInfo и содержит дополнительный набор членов, которые предназначены для создания, перемещения, удаления, получения информации о каталогах и подкаталогах в файловой системе. Наиболее важные члены класса содержатся в таблице 2.2.
Таблица 19.2 Доступные члены класса DirectoryInfo.

Член

Описание

Create() CreateSubDirectory()

Создают каталог (или подкаталог) по указанному пути в файловой системе

Delete()

Удаляет пустой каталог

GetDirectories()

Позволяет получить доступ к подкаталогам текущего каталога (в виде массива объектов DirectoryInfo )

GetFiles()

Позволяет получить доступ к файлам текущего каталога

125

Член

Описание




(в виде массива объектов FileInfo )

MoveTo()

Перемещает каталог и все его содержимое на новый адрес в файловой системе

Parent

Возвращает родительский каталог в иерархии файловой системы


1   2   3   4   5   6   7   8   9   ...   12


написать администратору сайта