Модификаторы прав доступа к типам
Доступом к структурам и классам также можно управлять средствами модификаторов, контролирующих создание экземпляров; они напоминают модификаторы, управляющие доступом к членам.
Модификатор public разрешает доступ к соответствующему члену класса со стороны другого кода программы, включая методы, определенные внутри других классов.
Модификатор private разрешает доступ к соответствующему члену класса только для методов, определенных внутри того же класса. Таким образом, методы других классов не могут получить доступ к private-члену не их класса. При отсутствии модификатора доступа член класса является закрытым (private) по умолчанию. Следовательно, при создании закрытых членов класса модификатор private необязателен.
Экземпляр класса, объявленного с модификатором Public (public) способен создать любой объект приложения, объект класса с модификатором Friend (internal) — любой объект сборки, а объекты, которые не входят в данную сборку, этого сделать не могут. Модификаторы Private (private) и Protected (protected) применяются только с вложенными типами. Объект класса, объявленного с модификатором Private (private), создается только объектами того же типа или объектами его родительского типа (то есть типа, который содержит этот вложенный тип). Вложенные типы с модификатором Protected (protected) или ProtectedFriend (protectedinternal) доступны классам, производным от их родительского класса.
Классы, объявленные с модификатором Protectedfriend (protectedinternal), также видимы всем классам из данного пространства имен. Если модификатор доступа для класса или структуры не указан, по умолчанию считается, что задан модификатор Public (public).
Члены класса
Данные и функции внутри класса называют членами класса. Официальная терминология Microsoft делает различие между данными класса и функциями класса. Помимо этих членов, классы могут содержать вложенные типы (например, другие классы).
Данные класса
Данные класса — это те члены, которые содержат данные для класса: поля, константы и события.
Константы
Константа — это член класса, который, как и предлагает название, используется для представления постоянного значения. Такое постоянное значение можно либо объявить, либо вычислить во время компиляции. Константы могут зависеть от других констант той же программы, при этом запрещены только циклические зависимости (где A зависит от B, в то время как B определено и зависит от A).
Поля
Полем называется член, используемый для представления переменной, связанной с объектом или классом.
Формат объявления переменной экземпляра такой:
доступ тип имя_переменной;
Поля представляют собой любые переменные, связанные с классом. Если определить переменную на уровне класса, то на самом деле это будет поле класса. Если поля объявлены как public, они доступны за пределами класса. Например, можно определить класс PhoneCustomer с полями CustomerID, FirstName и LastName:
classPhoneCustomer
{
publicintCustomerID;
public string FirstName;
public string LastName;
}
После того как будет создан экземпляр объекта PhoneCustomer, к этим полям можно осуществлять доступ с помощью синтаксиса
Объект.имя_поля
Пример:
PhoneCustomer Customer1= new PhoneCustomer ();
Customerl.CustomerID = 1000;
Customerl.FirstName = "Иван";
Customerl.LastName= "Петров";
Console.WriteLine (Customerl.FirstName + " " + Customerl.LastName);
События
События являются членами класса, которые позволяют объекту уведомлять вызывающего о том, что произошли некоторые программные изменения, например, изменилось поле или свойство класса либо имела место некоторая форма взаимодействия с пользователем. Клиент может содержать код, известный как обработчик ошибок, который реагирует на событие.
Функции класса
Функции класса являются теми членами, которые обеспечивают функциональность для работы с данными класса. Они включают в себя методы, свойства, конструкторы и деструкторы, операторы и индексаторы:
Методы
Методом называют член, реализующий действие, которое может выполняться объектом или классом.
Методы имеют
· список формальных параметров (который может быть пустым),
· возвращаемое значение (если только возвращаемым типом не является void).
Методы могут быть статическими и нестатическими:
· статические методы доступны через класс (они предоставляют общую функциональность, не требующую создания экземпляра класса (подобно методу Console.WriteLine ()),
· нестатические методы (методы экземпляра) доступны через экземпляры класса.
Свойства
Свойством называют член, обеспечивающий доступ к конкретной характеристике объекта или класса (например, такой как длина строки). Свойства в определенном смысле аналогичны полям, но, в отличие от полей, не указывают на области в памяти. Свойства имеют аксессоры (средства доступа), указывающие операторы, которые должны выполняться при доступе к свойству для чтения или записи.
Конструкторы
Конструкторы являются функциями, которые вызываются при создании экземпляра объекта. Они обязаны иметь имя, совпадающее с именем класса, и не должны возвращать никаких значений. Конструкторы служат для установки значений полей при создании экземпляра объекта.