Xây dựng tài khoản ngân hàng có đóng gói trong C#
Trong bài học này, bạn sẽ bảo vệ số dư của tài khoản bằng property chỉ đọc từ bên ngoài và một phương thức nạp tiền có kiểm tra.
Giới thiệu
Bài tập này áp dụng tính đóng gói: thay vì cho phép bên ngoài sửa trực tiếp số dư, class chỉ cung cấp những thao tác hợp lệ như nạp tiền. Nhờ vậy, các quy tắc nghiệp vụ, ví dụ không được nạp số tiền âm, luôn được đảm bảo.
Thuộc tính Balance có private set, nên bên ngoài chỉ được đọc mà không được gán giá trị. Phương thức Deposit kiểm tra số tiền phải lớn hơn 0, nếu không sẽ ném ra ArgumentOutOfRangeException. Tài khoản mở với 100, nạp thêm 50, nên số dư in ra là 150.
Ví dụ C# chạy được
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); }
}
150Luyện tập với trình gỡ lỗi
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách