Sobes.tech
Junior
117
questionbank

Что такое инкапсуляция?

Answer from AI

sobes.tech AI

Инкапсуляция — это механизм, позволяющий скрыть внутреннее состояние объекта и защитить его от внешнего вмешательства. Она объединяет данные (поля) и методы, работающие с этими данными, в единый блок — класс.

В C# инкапсуляция достигается с помощью модификаторов доступа (public, private, protected, internal, protected internal, private protected) и свойств (Properties).

Пример с использованием свойств:

public class Person
{
    private int _age; // Приватное поле

    public int Age // Публичное свойство предоставляет контролируемый доступ к полю _age
    {
        get { return _age; }
        set
        {
            if (value >= 0) // Валидация данных
            {
                _age = value;
            }
            else
            {
                // Можно выбросить исключение или выполнить другое действие
                Console.WriteLine("Возраст не может быть отрицательным.");
            }
        }
    }

    public string Name { get; set; } // Автоматически реализуемое свойство

    public void DisplayInfo()
    {
        Console.WriteLine($"Имя: {Name}, Возраст: {Age}");
    }
}

Преимущества инкапсуляции:

  • Скрытие реализации: Внутренние детали объекта скрыты от внешнего кода.
  • Контроль доступа: Доступ к данным осуществляется через методы или свойства, что позволяет выполнять валидацию и бизнес-логику.
  • Гибкость: Изменения во внутренней реализации класса неaffectируют внешний код, использующий его интерфейс.
  • Улучшение поддерживаемости: Код становится более структурированным и понятным.