Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_прог_ОКСМ_ч2.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
921.09 Кб
Скачать

Контрольные вопросы.

  1. Что такое массив?

  2. Объявление массива в С#.

  3. Создание экземпляра массива.

  4. Какими значениями инициализируется вновь созданный массив по умолчанию?

  5. Правила обращения к элементам массива.

  6. Способы инициализации элементов массива.

  7. Структура инициализации элементов массива с использованием параметрического цикла.

  8. Структура цикла foreach, его назначение и отличия от параметрического цикла for.

  9. Отличительные особенности обработки массивов в циклах for и foreach.

  10. Как в языке С# осуществить генерацию случайного целого числа в диапазоне [a, b]?

  11. Как в языке С# произвести инициализацию целочисленной переменной значением, введенным с клавиатуры?

  12. Как выполнить поиск максимального по модулю элемента массива?

  13. Как определить количество четных элементов массива?

  14. Как определить количество отрицательных элементов массива?

  15. Как заменить положительные элементы массива нулями?

Лабораторная работа №4

Тема: Использование классов.

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

Теоретические положения. Уровни доступа

В языке C# доступ для членов класса регулируется несколькими способами:

public

Общий (неограниченный) доступ

protected

Доступ ограничен в пределах данного класса и классов, производных от данного

internal

Доступ ограничен сборкой, в которой находится данный класс

protected internal

Доступ ограничен в пределах данного класса и классов, производных от данного, или доступ ограничен сборкой, в которой находится данный класс

private

Доступ ограничен в пределах данного класса

Доступом по умолчанию является private.

Доступ для классов верхнего уровня (классов, не вложенных в другие классы) ограничивается модификаторами internal и public (по умолчанию: internal).

Модификатор доступа, должен появляться перед каждым отдельным полем или методом (иначе данный элемент будет иметь уровень доступа private).

Поля класса могут иметь модификатор readonly, который означает, что значение данной переменной класса может либо быть задано сразу, либо в конструкторе (см. ниже), и в дальнейшем ее значение изменяться не может.

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

Для связи членов класса не с конкретными экземплярами класса, а с классом в целом, используются объявления статических переменных и статических функций.

Напоминаем, что статические переменные - это переменные, значения которых для каждого экземпляра класса одинаковы, а статические функции предназначены для работы со статическими переменными. Статическая функция, естественно, this не получает и поэтому обращаться к нестатическим членам класса не может. Для доступа к обычному члену класса необходимо создать объект класса, а для доступа к статическому элементу необходимо воспользоваться именем класса.

Конструкторы

Конструктор - это функция, которая вызывается при создании объекта класса. Исключение составляет лишь статический конструктор - функция, которая вызывается перед созданием первого экземпляра класса (статическому конструктору ничего не известно о создаваемом объекте). Статический конструктор параметров не получает, а статических деструкторов не существует.

Деструкторы

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

Ссылочный тип

Объекты любых классов являются ссылочными типами. Это означает, что при объявлении они инициализируются null-значениями, и для них необходимо выделять память с помощью оператора new (естественно, объекты размещаются в куче).

Сборка мусора.

Автоматическая сборка мусора (выделенной и более не используемой памяти) предназначена для облегчения жизни программисту, позволяя не заботиться о возможных утечках памяти (например, удалить выделенный в куче объект).

По идее, память из кучи в среде .NET Runtime выделяется достаточно быстро. Системе всего лишь необходимо удостовериться, что в управляемой куче достаточно памяти для запрашиваемого объекта, вернуть указатель на эту память и перевести указатель на следующий после последнего объекта адрес. Соответственно, простота выделения памяти сопровождается некоторым усложнением очистки. Для повышения быстродействия большие объекты (>20 КБайт) выделяются из отдельной кучи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]