1
Sự Đóng Gói
Môn Lập Trình Hướng Đối Tượng – Chương 4
Nguyễn Minh Thành
[Mail] :
2
Nhắc Lại
Lập trình hướng đối tượng là phương pháp lập
trình dựa trên kiến trúc lớp (class) và đối
tượng (object).
Chương trình là một hệ thống các đối tượng. Xây
dựng một chương trình là định nghĩa các lớp đối
tượng, sau đó khai báo các đối tượng và tổ
chức để các đối tượng thực thi nhiệm vụ của
mình.
3
Nội Dung
1. Khái niệm về Tính Đóng Gói
2. Phạm vi truy xuất trên Lớp
3. Thiết kế thuộc tính cho Lớp
4
7
Ví dụ : lập trình thủ tục (tt)
void NhapSinhVien(out string ht,out int ns,out string gt)
{
Console.Write("Nhap ho ten :");
ht = Console.ReadLine();
Console.Write("Nhap nam sinh :");
ns = int.Parse(Console.ReadLine());
Console.Write("Nhap gioi tinh :");
gt = Console.ReadLine();
}
void XuatSinhVien(string ht, int ns, string gt)
{
Console.WriteLine("Sinh vien : {0}, sinh nam {1},
phai {2}",ht,ns,gt);
}
8
Ví dụ : lập trình thủ tục (tt)
void main()
{
string hoten1, hoten2;
int namsinh1, namsinh2;
string gioitinh1, gioitinh2;
NhapSinhVien(out hoten1,out namsinh1, out gioitinh1);
gioitinh = Console.ReadLine();
}
public void Xuat()
{
Console.WriteLine("Sinh vien : {0}, sinh nam {1}, phai
{2}",hoten,namsinh,gioitinh);
}
}
11
Ví dụ : lập trình hướng đối tượng
void main()
{
SinhVien sv1 = new SinhVien();
SinhVien sv2 = new SinhVien();
sv1.Nhap();
sv2.Nhap();
sv1.Xuat();
sv2.Xuat();
}
Nhận xét
sv1 và sv2 là 2 đối tượng thuộc class SinhVien, nên sv1, sv2 sẽ có
các dữ liệu : hoten, namsinh, gioitinh và 2 phương thức nhập, xuất
riêng.
Khi ta gọi s1.Nhap(), phương thức Nhap của sv1 được gọi và sẽ
thao tác lên chính dữ liệu của sv1, không ảnh hưởng đến sv2
Đó là tính đóng gói
…………………………………………………………………………………………
…………………………………………………………………………………………
14
3. Thiết kế thuộc tính
Chọn kiểu thích hợp biểu diễn của thuộc tính của lớp.
Lập bảng như sau:
STT
Thuộc tính Kiểu/ lớp
Ràng buộc
Ghi chú
Ví dụ 1: Xét lớp điểm ký tự trên cửa sổ Console
STT
Thuộc
tính
Kiểu/ lớp
Ràng buộc
Ghi chú
1
Thiết kế thuộc tính
Ví dụ 2: Xét lớp hình chữ nhật trên cửa sổ Console
• Cách 1:
STT
Thuộc tính
Kiểu/ lớp
Ràng buộc
Ghi chú
1
Goc
CDIEM
2
m
Số
nguyên
m>0 và m+hoành độ
góc
CDIEM
H/độ M1< H/độ M2
Góc trên bên trái
2
M2
CDIEM
T/độ M1 < T/độ M2
Góc dưới bên phải
16
Thiết kế thuộc tính
Ví dụ 2: Xét lớp hình chữ nhật trên cửa sổ Console
• Cách 3:
STT
Thuộc
tính
Kiểu/ lớp
Ràng buộc
m>0 và m+x0 và n+y