Bài giảng Lập trình DOTNET - Chương 3: Lập trình hướng đối tượng với C# - Huỳnh Lê Uyên Minh
1. Phương pháp lập trình hướng đối tượng
• Chương trình là một hệ thống những lớp đối tượng. Mỗi
một lớp đối tượng về mặt thực tế tương ứng với những
đối tượng có xuất hiện trong thực tế.
• LT hướng đối tượng là xây dựng những lớp đối tượng và
yêu cầu chúng thực hiện những trách nhiệm của mình.
• LT hướng đối tượng là phương pháp LT dựa trên kiến
trúc lớp (class) và đối tượng (object)

Trang 1

Trang 2

Trang 3

Trang 4

Trang 5

Trang 6

Trang 7

Trang 8

Trang 9

Trang 10
Tải về để xem bản đầy đủ
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Lập trình DOTNET - Chương 3: Lập trình hướng đối tượng với C# - Huỳnh Lê Uyên Minh", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Lập trình DOTNET - Chương 3: Lập trình hướng đối tượng với C# - Huỳnh Lê Uyên Minh
CHƯƠNG 3: LẬP TRÌNH HƯỚNG
ĐỐI TƯỢNG VỚI C#
Môn học: Lập trình DOTNET
Giảng viên: Huỳnh Lê Uyên Minh
Khoa: Sư phạm Toán – Tin, ĐH Đồng Tháp
1
NỘI DUNG
1. Phương pháp lập trình hướng đối tượng
2. Định nghĩa lớp - class
3. Tạo đối tượng - Object
1. Phương pháp lập trình hướng đối tượng
• Chương trình là một hệ thống những lớp đối tượng. Mỗi
một lớp đối tượng về mặt thực tế tương ứng với những
đối tượng có xuất hiện trong thực tế.
• LT hướng đối tượng là xây dựng những lớp đối tượng và
yêu cầu chúng thực hiện những trách nhiệm của mình.
• LT hướng đối tượng là phương pháp LT dựa trên kiến
trúc lớp (class) và đối tượng (object)
3
Đối tượng là gì ?
Đối tượng trong thế giới thực: là một thực thể cụ thể mà
ta có thể sờ, nhìn thấy hay cảm nhận được.
Đối tượng phần mềm: dùng để biểu diễn các đối tượng
trong thế giới thực.
Mỗi đối tượng bao gồm 2 thành phần: thuộc tính và hành
động.
4
Đối tượng là gì ?
Ví dụ: một người A
• Một người có các thuộc tính: tên, tuổi, địa chỉ,
màu mắt,
• Các hành động: đi, nói, thở,
Một đối tượng là 1 thực thể bao gồm
thuộc tính & hành động
5
Lớp đối tượng là gì ?
• Lớp đối tượng thể hiện cho một nhóm các đối
tượng giống nhau (cùng thuộc tính & hành động)
• Ví dụ: học sinh A, học sinh B, học sinh C
6
Thiết kế phần mềm hướng đối tượng
. Trừu tượng hóa dữ liệu và các hàm/ thủ tục liên
quan
. Chia hệ thống ra thành các lớp/ đối tượng
. Mỗi lớp/ đối tượng có các tính năng và hành
động chuyên biệt
. Các lớp có thể được sử dụng để tạo ra nhiều
đối tượng cụ thể
7
Sự trừu tượng hoá
Thế giới thực Trừu tượng hóa Phần mềm
Thuộc tính Dữ liệu
Thực thể
Hành động hàm
8
Một số khái niệm
Thế giới thực PPLT Ngôn ngữ lập trình
Đối tượng trong thế giới thực Đối tượng Biến có kiểu cấu trúc
Khái niệm chung về đối tượng Lớp đối tượng Kiểu dữ liệu cấu trúc
Các thông tin được quan tâm Thuộc tính Thành phần thuộc
về 1 đối tượng tính của kiểu cấu trúc
Các khảnăng của đối tượng Hành động Các phương thức
Phân công giữa các đối tượng Yêu cầu Gọi thực hiện
phương thức
9
2. Định nghĩa Lớp - Class
. Lớp đối tượng: Định nghĩa các đặc điểm/ thông tin (thuộc tính) và hành động/
chức năng/ (phương thức) chung cho tất cả các đối tượng của cùng một loại.
Ví dụ: Lớp SINHVIEN gồm
. Thuộc tính: Họ tên, giới tính, ngày tháng năm sinh, điểm tb, đối tượng ưu
tiên, ...
. Phương thức: Học bài, làm bài thi, bài tập, ...
Sinh viên Nguyễn Văn A, Lý Thị B là đối tượng thuộc lớp SINHVIEN
10
Cú pháp định nghĩa lớp (class)
class
{
các thuộc tính;
phương thức ()
{
Cài đặt
}
}
11
Từ khóa truy xuất
. private (mặc định): Truy xuất trong nội bộ
lớp (thường sử dụng cho thuộc tính).
. protected: Truy xuất trong nội bộ lớp/ lớp
con (được sử dụng cho lớp cơ sở)
. public: Truy xuất mọi nơi (thường sử dụng
cho phương thức).
. static: truy xuất không cần khởi tạo đối
tượng của lớp.
12
Ví dụ: định nghĩa lớp CHocSinh
public class CHocSinh
{
private string hoten;
private int toan, van;
private float dtb;
public void Nhap()
{ }
public void Xuat()
{ }
}
13
3. Đối tượng, Tạo và sử dụng đối tượng
. Đối tượng: Thể hiện (instance) cụ thể của một
lớp đối tượng.
. Tạo đối tượng
TênĐốiTượng = new ();
VD: HOCSINH hsA = new HOCSINH();
. Sử dụng đối tượng
TênĐốiTượng.TênPhươngThức([tham số]);
VD: hsA.Nhap();
hsA.Xuat();
14
Ví dụ: Nhập vào họ tên, điểm văn và điểm toán của 1
học sinh. Tính điểm trung bình và in kết quả
public class HOCSINH
{
private string hoten;
private int toan, van;
private float dtb;
public void Nhap()
{
Console.Write("Nhap ho ten: "); hoten = Console.ReadLine();
Console.Write("Nhap diem van: "); van = int.Parse(Console.ReadLine());
Console.Write("Nhap diem toan: "); toan = int.Parse(Console.ReadLine());
dtb = (float)(toan + van) / 2;
}
public void Xuat()
{
Console.WriteLine("Diem trung binh: {0:0.00}", dtb);
}
}
15
class Program
{
static void Main(string[] args)
{
HOCSINH hsA = new HOCSINH();
hsA.Nhap();
hsA.Xuat();
}
}
Kết quả:
16
4. Thiết kế thuộc tính
Đối với mỗi đối tượng, xác định các thông tin cần lưu trữ. Sau đó lập bảng
mô tả thuộc tính như sau:
Stt Thuộc tính Kiểu/ lớp Ràng buộc Diễn giải
Nếu có ràng buộc liên thuộc tính thì lập thêm bảng
sau:
Thuộc tính
Stt Mô tả ràng buộc Ghi chú
liên quan
17
Ràng buộc
Ràng buộc trên lớp là các quy định, quy tắc áp đặt trên các
giá trị thuộc tính của đối tượng trong lớp, sao cho đối tượng
này thể hiện đúng với thực tế.
• Ràng buộc tĩnh: ràng buộc trên giá trị thuộc tính.
• Ràng buộc động: ràng buộc trên biến đổi giá trị thuộc tính.
Ví dụ:
• “Lương của nhân viên ít nhất là 1.500.000 đồng” Ràng
buộc tĩnh.
• “Lương của nhân viên chỉ có thể tăng” Ràng buộc động.
18
Ràng buộc tĩnh
Gồm 2 loại:
• Ràng buộc trên thuộc tính (Ràng buộc MGT)
• Ràng buộc liên thuộc tính
19
VD1: Xét lớp điểm ký tự (CDiemKT) trên cửa sổ Console
Thuộc
Stt Kiểu/ lớp Ràng buộc Diễn giải
tính
0 ≤ x < Kích
1 x Số nguyên Cột
thước ngang
0 ≤ y < Kích
2 y Số nguyên Dòng
thước dọc
Ký tự
3 ch Ký tự
hiển thị
20
VD2: Xét lớp hình chữ nhật (CHCN) trên cửa sổ Console
Mô tả thuộc tính
Chiều ngang
Tọa độ góc
Chiều đứngChiều
Thuộc
Stt Kiểu/ lớp Ràng buộc Diễn giải
tính
1 goc CDiemKT Toạ độ góc
2 ngang Số nguyên 1<ngang< Kích thước ngang Chiều ngang
3 dung Số nguyên 1<dung< Kích thước dọc Chiều đứng
21
VD2: Xét lớp hình chữ nhật (CHCN) trên cửa sổ Console
Mô tả ràng buộc liên thuộc tính
STT Mô tả ràng buộc Thuộc tính Ghi chú
liên quan
1 Tổng của hoành độ góc và m Goc, m
nhỏ hơn kích thước ngang
2 Tổng của tung độ góc và n Goc, n
nhỏ hơn kích thước dọc
22
VD3: Mô tả ràng buộc liên thuộc tính cho lớp CDate
STT Mô tả ràng buộc Thuộc tính Ghi chú
liên quan
1 Nếu Th là 4, 6, 9, 11 thì Ng, Th
Ng tối đa là 30
2 Nếu Th là 2 và Nm nhuận Ng, Th, Nm
thì Ng tối đa là 29
Nếu Th là 2 và Nm không
nhuận thì Ng tối đa là 28
23
5. Bài tập – Thiết kế thuộc tính Lớp
24
5. Bài tập – Thiết kế các hành động của Lớp
25
Thiết kế các hành động của lớp
2. Khởi tạo
1. Kiểm tra ràng buộc
3. Cập nhật
4. Xử lý, tính toán
5. Cung cấp thông tin
VD1: Thiết kế các hành động của lớp CDiemKT
1. Nhóm kiểm tra ràng buộc
public bool KiemTraX(int xx);
public bool KiemTraY(int yy);
2. Nhóm khởi tạo
public void Nhap();
public bool KhoiTao (int xx, int yy, char cc);
public void PhatSinh();
27
VD1: Thiết kế các hành động của lớp CDiemKT
3. Nhóm cập nhật
//Trực tiếp
public bool CapNhatX(int xx);
public bool CapNhatY(int yy);
public void CapNhatCh(char c);
//Gián tiếp
public bool DichPhai(uint k);
public bool DichTrai(uint k);
public bool DichLen(uint k);
public bool DichXuong(uint k);
public bool DichXien1(uint k);
public bool DichXien2(uint k);
28
VD1: Thiết kế các hành động của lớp CDiemKT
4. Nhóm xử lý nhtí toán
public double KhoangCach(CDiemKT M);
public int KhoangCachX(CDiemKT M);
public int KhoangCachY(CDiemKT M);
5. Nhóm cung cấp thông tin
public void Xuat();
public void Xoa();
public int GiaTriX();
public int GiaTriY();
public char GiaTriCh();
29
VD2: Thiết kế các hành động của lớp CHCN
1. Nhóm kiểm tra ràng buộc
public bool KiemTraM(int mm);
public bool KiemTraN(int nn);
2. Nhóm khởi tạo
public void Nhap();
public bool KhoiTao(CDiemKT M,int cng, int cd);
public bool KhoiTao(int x, int y, int cng, int cd);
public void KhoiTao(CDiemKT X, CDiemKT Y);
public void PhatSinh();
30
VD2: Thiết kế các hành động của lớp CHCN
3. Nhóm cập nhật
//Trực tiếp
public bool CapNhatGoc(CDiemKT M);
public bool CapNhatNgang(int cng);
public bool CapNhatDung(int cd);
31
VD2: Thiết kế các hành động của lớp CHCN
3. Nhóm cập nhật
//Gián tiếp
public bool DichPhai(int k);
public bool DichTrai(int k);
public bool DichLen(int k);
public bool DichXuong(int k);
public bool TangNgang(int k);
public bool GiamNgang(int k);
public bool TangDung(int k);
public bool GiamDung(int k);
public bool XoayThuan();
public void XoayNghich();
32
VD2: Thiết kế các hành động của lớp CHCN
4. Nhóm xử lý nhtí toán
public int XetViTri(CDiemKT M);
//-1: Bên trong, 0: Trên cạnh, 1: Bên ngoài
public int KhoangCachX(CDiemKT M);
public int KhoangCachY(CDiemKT M);
VD2: Thiết kế các hành động của lớp CHCN
5. Nhóm cung cấp thông tin
public void Xuat();
public void Xoa();
public CDiemKT ToaDoGoc();
public int ChieuNgang();
public int ChieuDung();
public int ChuVi();
public long DienTich();
public double DuongCheo();
6. Sử dụng từ khóa this
class Program
class CViDu {
{ static void Main(string[] args)
int a, b; {
public void Gan(int a, int b) CViDu vd = new CViDu();
{ vd.Gan(21, 9);
a = a; vd.Xuat();
b = b; }
} }
public void Xuat()
{
Console.WriteLine("a={0}, b={1}", a, b);
}
}
35
Trường hợp tên tham số trùng với tên thuộc tính của đối tượng ta dùng từ khóa this.
Từ khoá this được dùng để tham chiếu đến chính bản thân của đối tượng đó
class CViDu
{
int a, b;
public void Gan(int a, int b)
{
this.a = a;
this.b = b;
}
public void Xuat()
{
Console.WriteLine("a={0}, b={1}", a, b);
}
}
36 File đính kèm:
bai_giang_lap_trinh_dotnet_chuong_3_lap_trinh_huong_doi_tuon.pdf

