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)

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 trang 1

Trang 1

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 trang 2

Trang 2

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 trang 3

Trang 3

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 trang 4

Trang 4

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 trang 5

Trang 5

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 trang 6

Trang 6

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 trang 7

Trang 7

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 trang 8

Trang 8

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 trang 9

Trang 9

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 trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 36 trang xuanhieu 8581
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

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:

  • pdfbai_giang_lap_trinh_dotnet_chuong_3_lap_trinh_huong_doi_tuon.pdf