Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn

Giả sử đã xây dựng lớp CDate hoàn chỉnh

 Cần xây dựng ứng dụng tính tiền lãi của một ngân hàng thành lập ngày 15/2/2007

 Cần xây dựng ứng dụng quản lý sinh viên có thuộc tính ngày tháng năm sinh (sinh viên phải từ 17 tuổi trở lên)

Cần có cơ chế cho phép khai báo lớp CDate mới là lớp CDate cũ với 1 số các sửa đổi bổ sung

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 1

Trang 1

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 2

Trang 2

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 3

Trang 3

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 4

Trang 4

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 5

Trang 5

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 6

Trang 6

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 7

Trang 7

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 8

Trang 8

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 9

Trang 9

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn trang 10

Trang 10

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

pdf 48 trang Danh Thịnh 09/01/2024 1000
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn", để 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 Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn

Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4 - Lý Anh Tuấn
Slide 1 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
NGÔN NGỮ LẬP TRÌNH NÂNG CAO 
Slide 2 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Kế thừa lớp đối tượng 
Tính đa hình 
Cài đặt giao diện 
Nội dung 
Slide 3 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• Khái niệm về tính kế thừa 
• Thiết kế lớp kế thừa 
• Thiết lập và hủy trong kế thừa 
Kế thừa lớp đối tượng 
Slide 4 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Giả sử đã xây dựng lớp CDate hoàn chỉnh 
 Cần xây dựng ứng dụng tính tiền lãi của một ngân hàng 
thành lập ngày 15/2/2007 
 Cần xây dựng ứng dụng quản lý sinh viên có thuộc tính 
ngày tháng năm sinh (sinh viên phải từ 17 tuổi trở lên) 
Cần có cơ chế cho phép khai báo lớp CDate mới là lớp 
CDate cũ với 1 số các sửa đổi bổ sung. 
Đặt vấn đề 
Slide 5 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Tương tự với chương trình đánh cờ caro, cờ tướng trên 
máy tính. Mỗi quân cờ được xem như 1 điểm ký tự 
(CDiemKT) nhưng mỗi quân cờ có những đặc điểm 
khác nhau. Do vậy cần sử dụng lớp CDiemKT bổ sung 
và sửa đổi một số phần thay cho việc xây dựng lại từ 
đầu. 
Đặt vấn đề 
Slide 6 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Kế thừa cho phép khai báo 1 lớp B là 1 lớp 
dẫn xuất từ lớp A. Khi đó B sẽ có tất cả các 
thuộc tính và đặc điểm của A, ngoài ra B có thể 
có thêm những thuộc tính và những hành động 
mới. 
Khái niệm 
Slide 7 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 Kế thừa thể hiện khả năng tái sử dụng các lớp 
đã được định nghĩa. 
 Có thể định nghĩa lớp đối tượng mới dựa trên 
1 hay nhiều lớp đối tượng đã có sẵn. 
 Lớp có sẵn được gọi là lớp cơ sở (based 
class) và lớp kế thừa được gọi là lớp dẫn xuất 
(derived class) 
Khái niệm 
Slide 8 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 A B 
 * tính chất chung 
- tính chất của A 
+ tính chất của B 
- - *- - - *- 
*- - * - - * 
+ * + + + * + * 
+ * + + + * + 
 C 
 A B 
- - - - - - - - 
- - 
+ + + + + + +
+ + + 
* * * * 
* 
Khái niệm 
Slide 9 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
• A: Là trường hợp tổng quát của B 
• B: Là trường hợp đặc biệt của A 
A 
B 
A 
B C 
 A: Là trường hợp tổng quát 
của B và C 
 B, C: Là trường hợp đặc biệt 
của A 
Ký hiệu 
Slide 10 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
CDate 
CDateNH CDateSV 
VD: Lớp ngày cho ngân hàng và sinh viên 
Slide 11 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
class TênLớpCha 
{ 
 Thuộc tính và phương thức của lớp cha 
} 
class TênLớpDẫnXuất : TênLớpCha 
{ 
 Thuộc tính và phương thức bổ sung của 
 lớp dẫn xuất 
} 
Khai báo 
Slide 12 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Có 2 cách để định nghĩa hành động bổ sung cho 
phương thức đã có sẵn ở lớp cha trong lớp dẫn 
xuất (phương thức lớp dẫn xuất trùng tên với 
phương thức lớp cha) 
• Dùng từ khóa new 
• Dùng từ khóa virtual và override 
Khai báo 
Slide 13 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
class COSO 
{ 
 protected kiểu data1; 
 protected kiểu data2; 
 public void Method1() 
 {} 
 public void Method2() 
 {} 
} 
class DANXUAT : COSO 
{ 
 private kiểu data3; 
 public new void Method1() 
 {} 
 public void Method4() 
 {} 
} 
Khai báo – Dùng từ khóa new 
Slide 14 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
class COSO 
{ 
 protected kiểu data1; 
 protected kiểu data2; 
 public virtual void Method1() 
 {} 
 public virtual void Method2() 
 {} 
} 
class DANXUAT : COSO 
{ 
 private kiểu data3; 
 public override void Method1() 
 {} 
 public void Method4() 
 {} 
} 
Khai báo – Dùng virtual & override 
Slide 15 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Viết chương trình nhập xuất nhân viên, biết rằng có 2 loại 
nhân viên: Nhân viên biên chế và nhân viên hợp đồng. 
Thông tin của nhân viên gồm: Mã số, Họ tên. 
• Nhân viên biên chế có thông tin riêng là bậc lương. 
• Nhân viên hợp đồng có thông tin riêng là số giờ làm. 
Ví dụ 
Slide 16 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
Ta có cây kế thừa sau: 
CNHANVIEN 
CHOPDONG CBIENCHE 
Ví dụ 
Slide 17 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 class CNHANVIEN 
 { protected int maso; 
 protected string hoten; 
 public void Nhap() 
 { Console.Write("Nhap ma so nhan vien: "); 
 maso = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap ho ten nhan vien: "); 
 hoten = Console.ReadLine(); 
 } 
 public void Xuat() 
 { Console.WriteLine("Ma so: {0}\nHo ten: {1}", maso, hoten); 
 } 
 } 
Ví dụ - dùng từ khóa new 
Slide 18 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 class CBIENCHE : CNHANVIEN 
 { 
 private float hesoluong; 
 public new void Nhap() 
 { base.Nhap(); 
 Console.Write("Nhap he so luong: "); 
 hesoluong = float.Parse(Console.ReadLine()); 
 } 
 public new void Xuat() 
 { base.Xuat(); 
 Console.WriteLine("He so luong: " + hesoluong); 
 } 
 } 
Ví dụ - dùng từ khóa new 
Slide 19 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
 class CHOPDONG : CNHANVIEN 
 { private float sogio; 
 public new void Nhap() 
 { base.Nhap(); 
 Console.Write("Nhap so gio lam viec: "); 
 sogio = float.Parse(Console.ReadLine()); 
 } 
 public new void Xuat() 
 { base.Xuat(); 
 Console.WriteLine("So gio lam viec: " + sogio); 
 } 
 } 
Ví dụ - dùng từ khóa new 
Slide 20 of 25 Ver. 1.0 
Object-Oriented Programming Using C# 
class CNHANVIEN 
 { protected int maso; protected string hoten; 
 public virtual void Nhap() 
 { Console.Write("Nhap ma so nhan vien: "); 
 maso = int.Parse(Console.ReadLine()); 
 Console.Write("Nhap ho ten nhan vien: "); 
 hoten = Console.ReadLine(); 
 } 
 public virtual void Xuat() 
 { Console.WriteLine("Ma so: {0}\nHo ten: {1}", maso, hoten); 
 } 
 } 
Ví dụ - dùng virtual & override 
Slide 21 of 25 Ver. 1.0 
Object-Oriented Programming 

File đính kèm:

  • pdfbai_giang_ngon_ngu_lap_trinh_nang_cao_bai_4_ly_anh_tuan.pdf