{ телокласса } Перед заголовком класса могут указываться модификаторы (modifier), ко- торые определяют некоторые общие свойства класса, а также доступность для других элементов программы: internal – внутренний (задается по умолчанию, можно не писать); public – общедоступный; private – закрытый; protected – за- щищенный (закрыт для посторонних, но доступен для наследников); static – статический; abstract – абстрактный; sealed – запечатанный (или бесплодный, не может иметь наследников).
Класс может содержать следующие функциональные элементы (members):
поля – переменные класса;
свойства – обеспечивают «умный» доступ к полям;
методы – определяют поведение класса;
конструкторы – служат для инициализации объектов (экземпляров класса);
исключения – используются для обработки исключительных ситуаций;
набор операций, позволяющих производить различные действия. Простейший пример – описание общедоступного класса с одним методом:
public class Computer
{ public void ShowInfo()
{ Console.WriteLine( "RAM = 8 Гбайт" ); } } Все классы .NET имеют общего предка – класс object, и организованы
в единую иерархическую структуру. Классы логически группируются в прост-ранства имен, которые служат для упорядочивания имен классов и предот- вращения конфликтов имен: в разных пространствах имена могут совпадать. Пространства имен могут быть вложенными. Любая программа использует про- странство имен System, в котором собрано множество стандартных классов и методов (смотри раздел 1).
Рассмотрим теперь описание экземпляра класса. Напомним, что класс яв- ляется обобщенным понятием, определяющим характеристики и поведение мно- жества конкретных объектов, называемых экземплярами (или просто объекта- ми) этого класса. Классы создаются программистом до выполнения программы. Экземпляры класса (объекты) создаются системой во время выполнения. Про- граммист задает создание экземпляра класса с помощью инструкции new, на- пример: Computer comp1 = new Computer(“Asus”, 2048) или Computer comp2 =
= new Computer(“IBM”, 4096). При этом для каждого объекта выделяется от- дельная область памяти для хранения его данных. Класс может содержать так- же и статические элементы, которые существуют в единственном экземпляре.
Содержащиеся в классе данные могут быть переменными или константами. Описанные в классе переменные называются полямикласса. При описании по- лей обязательно указывают тип и имя (которое начинается с малой буквы).
[ модификаторы ] типимя [ = начальное_значение ]
Можно также указывать модификаторы, определяющие доступность, а так- же задавать начальное значение (т. е. инициализировать поле).
Все поля в C# сначала автоматически инициализируются нулем соответст- вующего типа. Например, полям типа int присваивается 0, полям типа double – 0.0, а ссылкам на объекты – значение null). После этого полю присваивается значе- ние, заданное при его явной инициализации.
Метод – именованный функциональный элемент класса, выполняющий вы- числения и другие действия. Метод определяет поведение класса. В программе метод представляет собой блок кода, содержащий ряд инструкций, к которому можно обратиться по имени. Он описывается один раз, а вызываться может многократно по необходимости.
При описании метода в заголовке обязательно указывают его тип (который соответствует типу возвращаемого методом значения) и Имя (с заглавной бук- вы). В круглых скобках после имени указывают параметры метода, которых может и не быть, но скобки обязательны.
[ модификаторы ] типИмя( [параметры] )