0Pricing
C# Academy · Урок

Инкапсуляция и модификаторы доступа

Узнайте, как инкапсуляция защищает данные, а модификаторы доступа управляют видимостью

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

Введение в инкапсуляцию

Инкапсуляция и модификаторы доступа

Добро пожаловать на следующий урок! На этом уроке вы узнаете об инкапсуляции — важнейшем понятии ООП — и о том, как модификаторы доступа управляют видимостью членов класса в C#. Давайте начнём!

Инкапсуляция и модификаторы доступа — иллюстрация 1

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

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

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

Ключевой момент: Инкапсуляция позволяет скрыть детали реализации и предоставить только необходимую функциональность.

Почему важна инкапсуляция?

Почему важна инкапсуляция?

Инкапсуляция предоставляет несколько преимуществ:

  • Защита данных: Предотвращает несанкционированный или некорректный доступ к полям класса.
  • Удобство сопровождения кода: Изменения во внутренней реализации не влияют на внешний код.
  • Повышенная модульность: Поддерживает организованность и понятность кода.

Пример: Класс с закрытыми полями и открытыми методами для управления этими полями демонстрирует инкапсуляцию.

Изучение модификаторов доступа

Изучение модификаторов доступа

Модификаторы доступа в 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);
    }
}

Рекомендации по инкапсуляции

Рекомендации по инкапсуляции

Ниже приведены рекомендации:

  • Всегда используйте закрытые поля для конфиденциальных данных.
  • Используйте свойства или методы для проверки данных и управления доступом к полям.
  • Сочетайте инкапсуляцию с модификаторами доступа для защиты кода.

Совет: Инкапсуляция помогает создавать безопасные и удобные в сопровождении приложения.

Отличная работа!

Отличная работа!

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

Инкапсуляция и модификаторы доступа — иллюстрация 10

Часто задаваемые вопросы

Урок «Инкапсуляция и модификаторы доступа» бесплатный?

Да — полный текст урока «Инкапсуляция и модификаторы доступа» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 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 — локальная установка не требуется.

Все уроки этого курса

  1. Что такое объектно-ориентированное программирование?
  2. Определение классов и объектов
  3. Свойства и методы
  4. Конструкторы в C#
  5. Инкапсуляция и модификаторы доступа
  6. Наследование: повторное использование кода
  7. Полиморфизм и переопределение методов
← Назад к C# Academy