Упражнения C#

Инкапсулированный банковский счёт на C#

В этом уроке вы защитите баланс счёта свойством, доступным снаружи только для чтения, и контролируемым методом пополнения.

Введение

Это упражнение применяет инкапсуляцию: вместо того чтобы позволять менять баланс напрямую, класс предлагает только допустимые операции, например пополнение. Так бизнес-правила, например запрет на пополнение отрицательной суммой, всегда соблюдаются.

У свойства Balance private set: снаружи его можно только прочитать, но не присвоить. Метод Deposit проверяет, что сумма больше 0, иначе выбрасывает ArgumentOutOfRangeException. Счёт открывается со 100, на него вносится 50, поэтому выводится баланс 150.

Пример на C#, который можно запустить

C#
Запустить код →
Program.cs
using System;
class BankAccount(decimal opening)
{
    public decimal Balance { get; private set; } = opening;
    public void Deposit(decimal amount)
    {
        if (amount <= 0) throw new ArgumentOutOfRangeException(nameof(amount));
        Balance += amount;
    }
}
class Program
{
    static void Main() { var account = new BankAccount(100); account.Deposit(50); Console.WriteLine(account.Balance); }
}
Результат выполнения
150

Практика с отладчиком

Поставьте точку останова на важное присваивание или условие, нажмите Debug и посмотрите локальные значения, прежде чем перейти к следующей строке.

Попрактикуйтесь на задаче

Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.

Все задачи