Инкапсуляция и модификаторы доступа
Узнайте, как инкапсуляция защищает данные, а модификаторы доступа управляют видимостью
«Инкапсуляция и модификаторы доступа» — бесплатный урок C# Academy на CoddyKit. Это урок 5 из 7. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 7 уроков всего.
Введение в инкапсуляцию
Инкапсуляция и модификаторы доступа
Добро пожаловать на следующий урок! На этом уроке вы узнаете об инкапсуляции — важнейшем понятии ООП — и о том, как модификаторы доступа управляют видимостью членов класса в C#. Давайте начнём!

Что такое инкапсуляция?
Что такое инкапсуляция?
Инкапсуляция — это объединение данных (полей) и поведения (методов) в единую единицу (класс) с ограничением прямого доступа к некоторым компонентам. Это позволяет защищать целостность данных и устанавливать правила доступа к ним.
Ключевой момент: Инкапсуляция позволяет скрыть детали реализации и предоставить только необходимую функциональность.
Почему важна инкапсуляция?
Почему важна инкапсуляция?
Инкапсуляция предоставляет несколько преимуществ:
- Защита данных: Предотвращает несанкционированный или некорректный доступ к полям класса.
- Удобство сопровождения кода: Изменения во внутренней реализации не влияют на внешний код.
- Повышенная модульность: Поддерживает организованность и понятность кода.
Пример: Класс с закрытыми полями и открытыми методами для управления этими полями демонстрирует инкапсуляцию.
Изучение модификаторов доступа
Изучение модификаторов доступа
Модификаторы доступа в C# определяют область доступности членов класса:
- public: Доступен откуда угодно.
- private: Доступен только внутри того же класса.
- protected: Доступен внутри того же класса и производных классов.
- internal: Доступен внутри той же сборки.
- protected internal: Доступен внутри той же сборки или производных классов.
Ключевой момент: Используйте модификаторы доступа для обеспечения инкапсуляции.
Пример: инкапсуляция с закрытыми полями
Пример: инкапсуляция с закрытыми полями
Ниже приведён пример инкапсуляции с использованием закрытых полей и открытых методов:
Ключевой момент: Используйте закрытые поля, чтобы ограничить прямой доступ, и открытые методы, чтобы предоставить управляемую функциональность.
using System;
class BankAccount {
private decimal balance; // Private field
public void Deposit(decimal amount) {
if (amount > 0) {
balance += amount;
} else {
Console.WriteLine("Deposit amount must be positive.");
}
}
public decimal GetBalance() {
return balance; // Access balance through a method
}
}
class Program {
static void Main() {
BankAccount account = new BankAccount();
account.Deposit(100.50m); // Deposit money
Console.WriteLine("Balance: $" + account.GetBalance()); // Get balance
}
}
Инкапсуляция с помощью свойств
Инкапсуляция с помощью свойств
Свойства обеспечивают более удобный способ инкапсуляции полей с возможностью добавления логики проверки. Пример:
Совет: Для лучшей читаемости используйте свойства вместо обычных методов получения и установки значений.
using System;
class BankAccount {
private decimal balance; // Private field
public decimal Balance { // Property with validation
get { return balance; }
set {
if (value >= 0) {
balance = value;
} else {
Console.WriteLine("Balance cannot be negative.");
}
}
}
}
class Program {
static void Main() {
BankAccount account = new BankAccount();
account.Balance = 200; // Set balance
Console.WriteLine("Balance: $" + account.Balance); // Get balance
}
}
Практическое задание
Практическое задание
Создайте класс с именем Student с закрытыми полями Name и Age. Используйте свойства для инкапсуляции этих полей и обеспечьте, чтобы возраст всегда был положительным. Пример:
using System;
class Student {
private string name;
private int age;
public string Name {
get { return name; }
set { name = value; }
}
public int Age {
get { return age; }
set {
if (value > 0) {
age = value;
} else {
Console.WriteLine("Age must be positive.");
}
}
}
}
class Program {
static void Main() {
Student student = new Student();
student.Name = "Alice";
student.Age = 20;
Console.WriteLine("Name: " + student.Name);
Console.WriteLine("Age: " + student.Age);
}
}
Рекомендации по инкапсуляции
Рекомендации по инкапсуляции
Ниже приведены рекомендации:
- Всегда используйте закрытые поля для конфиденциальных данных.
- Используйте свойства или методы для проверки данных и управления доступом к полям.
- Сочетайте инкапсуляцию с модификаторами доступа для защиты кода.
Совет: Инкапсуляция помогает создавать безопасные и удобные в сопровождении приложения.
Отличная работа!
Отличная работа!
Поздравляем! Вы научились использовать инкапсуляцию и модификаторы доступа для защиты и организации данных. На следующем уроке мы изучим наследование и узнаем, как эффективно повторно использовать код. Продолжайте писать код!

Часто задаваемые вопросы
Урок «Инкапсуляция и модификаторы доступа» бесплатный?
Да — полный текст урока «Инкапсуляция и модификаторы доступа» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 7 уроков всего.
Чему я научусь в уроке «Инкапсуляция и модификаторы доступа»?
Узнайте, как инкапсуляция защищает данные, а модификаторы доступа управляют видимостью Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать C# Academy?
Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 5 из 7.
Сколько времени занимает урок «Инкапсуляция и модификаторы доступа»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке C# Academy?
Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Что такое объектно-ориентированное программирование?
- Определение классов и объектов
- Свойства и методы
- Конструкторы в C#
- Инкапсуляция и модификаторы доступа
- Наследование: повторное использование кода
- Полиморфизм и переопределение методов