Урок 1. Модификаторы доступа public и private

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

В 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 являются закрытыми полями.