Bài 1: Giới thiệu về Trình quản lý quảng cáo
Bài Giảng C#: Tính Đóng Gói (Encapsulation)
1. Tính Đóng Gói Là Gì?
Tính đóng gói (Encapsulation) là một trong bốn tính chất quan trọng của lập trình hướng đối tượng (OOP). Nó giúp bảo vệ dữ liệu bằng cách ẩn thông tin chi tiết của đối tượng và chỉ cho phép truy cập thông qua các phương thức được định nghĩa sẵn.
2. Các Mức Truy Cập Trong C#
Trong C#, có bốn mức truy cập chính:
private: Chỉ có thể truy cập bên trong lớp khai báo.public: Có thể truy cập từ bất kỳ đâu.protected: Có thể truy cập trong lớp khai báo và các lớp kế thừa.internal: Có thể truy cập trong cùng một assembly.
3. Ví Dụ Về Đóng Gói Trong C#
Dưới đây là một ví dụ minh họa cách sử dụng tính đóng gói để bảo vệ dữ liệu:
using System;
public class NhanVien
{
// Biến private, không thể truy cập trực tiếp từ bên ngoài
private string hoTen;
private double luong;
// Phương thức getter và setter
public string GetHoTen()
{
return hoTen;
}
public void SetHoTen(string ten)
{
hoTen = ten;
}
public double GetLuong()
{
return luong;
}
public void SetLuong(double soTien)
{
if (soTien > 0)
luong = soTien;
else
Console.WriteLine("Lương phải lớn hơn 0!");
}
}
class Program
{
static void Main()
{
NhanVien nv = new NhanVien();
nv.SetHoTen("Nguyen Van A");
nv.SetLuong(5000);
Console.WriteLine("Tên nhân viên: " + nv.GetHoTen());
Console.WriteLine("Lương: " + nv.GetLuong());
}
}
4. Tạo Getter và Setter Trong C# (Auto-Implemented Properties)
C# hỗ trợ cách viết gọn hơn bằng cách sử dụng properties:
class SanPham
{
public string Ten { get; set; } // Tự động tạo getter và setter
private double gia;
public double Gia
{
get { return gia; }
set
{
if (value > 0)
gia = value;
else
Console.WriteLine("Giá phải lớn hơn 0!");
}
}
}
5. Lợi Ích Của Tính Đóng Gói
- Bảo mật dữ liệu: Ngăn chặn truy cập trái phép.
- Kiểm soát dữ liệu: Chỉ cho phép thay đổi dữ liệu theo quy tắc nhất định.
- Dễ bảo trì: Có thể thay đổi nội dung lớp mà không ảnh hưởng đến mã nguồn bên ngoài.
6. Tổng Kết
- Tính đóng gói giúp bảo vệ dữ liệu bằng cách sử dụng các mức truy cập phù hợp (
private,public,protected,internal). - Sử dụng getter và setter để kiểm soát cách dữ liệu được truy xuất và sửa đổi.
- Có thể sử dụng properties để viết mã ngắn gọn và dễ đọc hơn.
Viết một chương trình C# để quản lý thông tin của một tài khoản ngân hàng. Thực hiện các yêu cầu sau:
- Tạo lớp
TaiKhoanNganHangvới các thuộc tính sau:private string soTaiKhoan: Số tài khoản (chỉ cho phép đọc).private string chuSoHuu: Chủ sở hữu (có thể đọc và ghi).private double soDu: Số dư tài khoản (chỉ cho phép ghi số >= 0).
- Cung cấp các phương thức để:
- Lấy thông tin số tài khoản.
- Thiết lập và lấy thông tin chủ sở hữu.
- Kiểm tra số dư hiện tại.
- Gửi tiền vào tài khoản.
- Rút tiền từ tài khoản (chỉ rút khi số dư đủ).
- Hàm main
- Khởi tạo một thông tin tài khoản
- HIển thị các thông tin của tài khoản đó bằng các hàm mà Class
TaiKhoanNganHangcung câps - Thực hiện hàm gửi tiền với số tiền tùy ý
- HIển thị số dư cuối của tài khoản
Nộp bài: File cs hoặc code trực tiếp trên phần biên soạn