Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp Language Specification.doc
Скачиваний:
13
Добавлен:
26.09.2019
Размер:
4.75 Mб
Скачать

1.6Классы и объекты

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

Новые классы создаются с помощью объявлений класса. Объявление класса начинается с заголовка, в котором задаются атрибуты и модификаторы класса, имя класса, базовый класс (если есть), а также интерфейсы, реализуемые классом. За заголовком следует тело класса, которое содержит перечень объявлений членов, записанных между разделителями — { и }.

Ниже приведено объявление простого класса Point:

public class Point { public int x, y;

public Point(int x, int y) { this.x = x; this.y = y; } }

Экземпляры класса создаются с помощью оператора new, который выделяет память для нового экземпляра, вызывает конструктор для инициализации экземпляра и возвращает ссылку на экземпляр. С помощью следующих операторов создаются два объекта Point, ссылки на которые сохраняются в двух переменных:

Point p1 = new Point(0, 0); Point p2 = new Point(10, 20);

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

1.6.1Члены

Класс может содержать статические члены или члены экземпляра. Статические члены принадлежат классам. Члены экземпляра принадлежат объектам (экземплярам класса).

В следующей таблице представлен обзор видов членов, которые может содержать класс.

Член

Описание

Константы

Постоянные значения, связанные с классом

Поля

Переменные класса

Методы

Вычисления и действия, которые могут выполняться классом

Свойства

Действия, связанные с чтением и записью именованных свойств класса

Индексаторы

Действия, связанные с индексацией экземпляров класса, например массива

События

Уведомления, которые могут формироваться классом

Операторы

Операторы преобразования и выражений, поддерживаемые классом

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

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

Деструкторы

Действия, выполняемые перед окончательным удалением экземпляров класса

Типы

Вложенные типы, объявленные в классе

1.6.2Доступность

Каждому члену класса присваивается собственный уровень доступности, который определяет разделы программы, в которых можно получить доступ к этому члену. Поддерживается пять уровней доступности. Эти уровни представлены в следующей таблице.

Доступность

Значение

public

Доступ не ограничен

protected

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

internal

Доступ ограничен этой программой

protected internal

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

private

Доступ ограничен этим классом

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