Тема 10. Права доступа к элементам классов
Права доступа к элементам объекта
public - права доступа не ограничены; protected - права доступа открыты только для внутренних методов и наследников; private - права доступа открыты только для внутренних методов; internal - права доступа открыты только для доступа внутри одной сборки (библиотеки).
Пример:
class A
{
void P1() { … };
public void P2() { … };
protected void P3() { … };
private void P4() { … };
}
Использование в программе:
A obj = new A(); obj.P1(); // Ошибка – нет доступа извне. obj.P2(); // Ок – доступ есть. obj.P3(); // Ошибка – нет доступа извне. obj.P4(); // Ошибка – нет доступа извне.
Использование при наследовании:
class B : A
{
public void PP()
{
P1(); // Ок – доступ есть.
P2(); // Ок – доступ есть.
P3(); // Ок – доступ есть.
P4(); // Ошибка – нет доступа даже потомкам.
};
}
Статические методы класса
static - описывает доступ к переменной/методу уровня класса.
Для доступа к таким элементам осуществляется без создания объекта.
Статические элементы класса – общие для всех объектов класса, а не для каждого в отдельности.
Из статического метода можно обращаться только к стаическим элементам класса.
class A
{
public int I1;
public static int I2;
public void P1()
{
I1 = 3; // Ок – обращаться к переменной можно.
I2 = 7; // Ок – обращаться к переменной можно.
}
public static void P2()
{
I1 = 3; // Ошибка – обращаться к переменной нельзя.
I2 = 7; // Ок – обращаться к переменной можно.
}
}
Использование в программе:
A obj = new A(); obj.I1 = 15; - Ок – обращаться к переменной можно. obj.I2 = 84; - Ошибка – обращаться к переменной нельзя.
A.I1 = 15; - Ошибка – обращаться к переменной нельзя. A.I2 = 84; - Ок – обращаться к переменной можно.
Дополнительная литература
https://msdn.microsoft.com/ru-ru/library/ms173121.aspx http://metanit.com/sharp/tutorial/3.2.php http://trubetskoy1.narod.ru/gunn/CSharp07.html Герберт Шилдт. Полное руководство C# 4., Вильямс, 2011, стр. 148-153