В реальной жизни пусть у объектов и имеется огромное количество различных сущностей описывающих их состояния, но не все они должны быть доступны для других объектов напрямую (видны). Например, у компьютера (собранного) мы видим только то, что находится снаружи, а его внутренние части (блок питания, материнская плата, видеокарта и т.д.) нам невидны, они скрыты от нас, хотя мы можем знать об их существовании, но прямого доступа к ним у нас нет. Для реализации таких же возможностей у объектов были придуманы различные модификаторы доступа, которые помогают указать нам допустимые области видимости их для других объектов.
В C# существуют такие модификаторы доступа:
public
private
protected
internal
protected internal
В этом уроке рассматриваются модификаторы доступа private
и public
, а знакомство с остальными будет в следующих уроках.
Модификаторы доступа можно применять ко всем членам наших классов, например их применение к полям и методам:
public int field1;
private int field2;
public void Method1() {}
private void Method2() {}
Модификатор доступа public
обозначает, что данный член класса должен быть виден для всех других объектов. А модификатор доступа private
, что этот член должен принадлежать только этому классу и должен быть скрыт (инкапсулирован) для других объектов.
Модификаторы доступа реализуют одну из парадигм ООП – инкапсуляцию, а именно: одну из её разновидностей - инкапсуляцию реализации (сокрытие реализации).
По умолчанию все ко всем членам класса применён модификатор доступа private
, поэтому при необходимости его применения к члену класса указывать дописывать его необязательно:
int field1;
private int field2;
И field1
, и field2
являются закрытыми полями.