Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
-C#_Lec14_OOP-1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
315.39 Кб
Скачать

14.4. Определение классов и их членов

Полный синтаксис определения класса в C# имеет следующий вид [2 – Фаронов]:

[атрибуты] [модификаторы] class <имя_класса> [: <список_родителей>]

{<тело_класса>}

Здесь атрибуты – атрибуты класса; модификаторы – модификаторы класса; class – зарезервированное слово; <имя_класса> – правильный идентификатор; <список_родителей> – список родительских классов; <тело_класса> – произвольный блок операторов (возможно, пустой).

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

Модификаторы доступа (таблица 14.1) могут сопровождать определение, как класса, так и всех составляющих его членов, они указывают область их видимости от полностью видимых (глобальных, public) до закрытых (локальных, private). По умолчанию класс считается доступным в текущей сборке (internal), а член класса – закрытым (локальным, private). Эти модификаторы подробно были рассматрены ранее (п.2.1.2. Модификаторы доступа).

Таблица 14.1. Модификаторы класса и его членов

Модификатор

Пояснение

public

Класс или его член доступен из любой точки программы

internal

Класс (член) доступен в сборке, в которой он определен

protected

Класс (член) доступен потомкам и только им

private

Члены класса доступны только методам этого же класса

abstract

Абстрактный класс; должен обязательно перекрываться в потомках

sealed

Класс не может иметь наследников

static

Определяет статический член класса

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

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

Модификатор sealed, наоборот, предупреждает компилятор о невозможности создания потомка класса. С помощью модификатора sealed объявляются «полностью готовые» классы {sealed – опечатанный, закрытый на ключ). Таким модификатором снабжаются все примитивные классы – это исключает возможность перегрузки для них операций.

Эти два модификатора широко используются в CTS.

Модификатор static объявляет член класса статическим. Для доступа к статическому члену можно не создавать объект класса – статические члены принадлежат не отдельному объекту, а классу как таковому.

Определить класс можно следующим образом (MSDN_ООП_VB+C#_2010):

class SampleClass

{ ...

}

Процесс создания объекта на основе класса называется созданием экземпляра этого класса. Если использовать сравнение с чертежом, то класс является чертежом, а объект является зданием, построенным по нему. Например:

SampleClass sampleObject = new SampleClass();

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

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