Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры информатика 2 сем.doc
Скачиваний:
18
Добавлен:
24.09.2019
Размер:
430.08 Кб
Скачать

Статические поля и методы класса

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

Массивы Массивом называют совокупность элементов одного типа. Каждый элемент массива имеет индексы, определяющие порядок элементов. Каждый индекс изменяется в некотором диапазоне [a,b]. Если все границы заданы константными выражениями, то число элементов массива известно в момент его объявления и ему может быть выделена память еще на этапе трансляции. Такие массивы называются статическими. Если выражения, задающие границы, зависят от переменных, то такие массивы называются динамическими. Массиву, как правило, выделяется непрерывная область памяти. <тип>[, ... ,] <объявители>; Число запятых, увеличенное на единицу, и задает размерность массива.

Функция Main() Метод Main является точкой входа консольного приложения C# или приложения Windows. (Для библиотек и служб не требуется метод Main в качестве точки входа). При запуске приложения метод Main является первым вызываемым методом. В программе C# возможна только одна точка входа.

Определение класса имеет вид:

Class имя_класса {тело_класса}

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

Объект – переменная, тип которой класс, его так же называют экземпляром класса.

Неявный указатель this Каждый объект класса имеет свою копию член-данных и один экземпляр каждой член-функции для всех объектов. Возникает вопрос, как же член-функция “понимает”, с член-данными какого объекта она работает? Ответ очевиден – с теми, которые принадлежат объекту, вызвавшему эту функцию.

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

Конструкторы класса Член-функция класса, предназначенная для инициализации член-данных класса при определении объектов класса, называется конструктором.

Конструктор всегда имеет имя класса. Конструктор не возвращает никаких значений.

1. Главная – конструктор не имеет возвращаемого значения (даже void), так как его назначение – инициализировать собственные член-данные объекта;

2. Конструктор имеет имя класса;

3. Конструктор работает неявно при определении объектов класса.

Если конструктор не имеет аргументов, то он называется конструктором по умолчанию.

В классе можно задать не один конструктор, а несколько.

Дружественность Если необходимо разрешить некоторому классу использовать член-данные из части private какого-либо другого класса, используется дружественность классов.

Другом класса может быть член-функция известного на данный момент другого класса.

Дружественность нарушает принцип инкапсуляции.

В С# дружественность осуществляется через тип доступа internal.