Bài giảng ngôn ngữ C#: Bài 4 - Chử Đức Hoàng
lượt xem 3
download
Mời các bạn sinh viên cùng tham khảo "Bài giảng ngôn ngữ C# - Bài 4: Lớp trừu tượng và giao diện trong C#" để nắm chi tiết nội dung kiến thức về khái niệm lớp trừu tượng; mô tả sự khác nhau giữa lớp trừu tượng và một lớp cụ thể; khái niệm giao diện, cách xây dựng và thực thi một giao diện; kế thừa giao diện; xây dựng ví dụ minh hoạ.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng ngôn ngữ C#: Bài 4 - Chử Đức Hoàng
- BÀI 4 LỚP TRỪU TƯỢNG VÀ GIAO DIỆN TRONG C# GV. Chử Đức Hoàng 1 v1.0011106202
- TÌNH HUỐNG DẪN NHẬP • Các thành phần dữ liệu và cách thức thực hiện, thao tác trên các dữ liệu để thực hiện công việc quản lý học viên của trường đại học quốc gia cần được thực hiện theo cách nào đó để khi viết các chương trình, tổ chức các lớp, đối tượng cũng như việc dùng lại các thành phần dữ liệu và phương thức được thuận lợi. • Có những thành phần dữ liệu và phương thức chỉ thực hiện trong chương trình mà người ta không muốn lớp khác kế thừa lại. • Khi lớp muốn kế thừa một lớp do đơn vị thứ ba cung cấp thì nó tiến hành kế thừa, hơn nữa chương trình lại dùng lại các thành phầncủa một lớp do chương trình cung cấp. Vậy những thông tin và việc tiến hành thao tác quản lý các học viên được thực hiện quản lý và cất dấu như thế nào bằng C# ? 2 v1.0011106202
- MỤC TIÊU Trình bày khái niệm lớp trừu tượng? Mô tả sự khác nhau giữa lớp trừu tượng và một lớp cụ thể? Trình bày khái niệm giao diện, cách xây dựng và thực thi một giao diện. Kế thừa giao diện Xây dựng ví dụ minh hoạ 3 v1.0011106202
- NỘI DUNG 1 Giới thiệu về lớp trừu tượng 2 Giao diện và thực thi giao diện trong C# 4 v1.0011106202
- 1.1. LỚP TRỪU TƯỢNG • Lớp trừu tượng là gì? • Các giới hạn của lớp trừu tượng? • Lớp sealed là gì và hoạt động của nó? 5 v1.0011106202
- 1.1.1. KHÁI NIỆM • Lớp trừu tượng là lớp chỉ thiết lập một cơ sở cho các lớp kế thừa mà nó không thể có bất kỳ một thể hiện nào tồn tại. • Khai báo lớp trừu tượng bằng từ khoá abstract: abstract class 6 v1.0011106202
- 1.1.2. CÁC GIỚI HẠN • Lớp trừu tượng không cho phép tạo thể hiện của lớp • Bất cứ lớp nào có một phương thức trừu tượng thì phải khai báo lớp là lớp trừu tượng • Override chúng trong lớp dẫn xuất • Các phương thức trừu tượng của lớp trừu tượng không được thực thi trong thân lớp mà phải được thực thi ở tất cả các lớp kế thừa từ lớp trừu tượng đó. • Phương thức trong lớp trừu tượng Abstract Method Virtual Method Từ khoá: abstract Từ khoá: virtual Chỉ có phần khai báo method và kết thúc là Có phần thực thi cho phương thức virtual ở dấu “;”, Không cần có phần thực thi cho lớp cơ sở phương thức abstract ở lớp abstract Bắt buộc lớp dẫn xuất phải override lại Không bắt buộc lớp dẫn xuất phải override Từ khoá override trước phương thức ở Từ khoá override trước phương thức ở lớp con lớp con 7 v1.0011106202
- 1.1.2. CÁC GIỚI HẠN (tiếp theo) Lớp trừu tượng Ví dụ • Lớp trừu tượng: AbstractClass • public abstract class AbstractClass • { Phương thức trừu tượng • public AbstractClass() • { • } • public abstract int AbstractMethod() ; • public virtual int VirtualMethod() • { • return 0; • } • } 8 v1.0011106202
- 1.1.2. CÁC GIỚI HẠN (tiếp theo) Lớp dẫn xuất từ lớp trừu tượng Bắt buộc phải có 13. public class DerivedClass : AbstractClass 14. { 15. public DerivedClass() 16. {} 17. public override int AbstractMethod() 18. { 19. return 0; 20. } 21. public override int VirtualMethod() 22. { 23. return base.VirtualMethod (); 24. } 25. } 9 v1.0011106202
- 1.1.3. LỚP SEALED • Còn gọi là lớp niêm phong, không cho phép lớp khác kế thừa nó, ngược với lớp abstract. • Sử dụng từ khoá “sealed” thay cho từ khoá “abstract” để có được lớp sealed: sealed class • Sử dụng từ khoá “sealed” trước phương thức để ngăn không cho lớp dẫn xuất override. 10 v1.0011106202
- 1.1.3. LỚP SEALED (tiếp theo) Ví dụ minh hoạ lớp sealed 26. using System; 27. sealed class MyClass 28. { 29. public int x; 30. public int y; 31. } 32. class MainClass { 33. public static void Main() 34. { 35. MyClass mC = new MyClass(); 36. mC.x = 110; mC.y = 150; 37. Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); 38. } 39. } 11 v1.0011106202
- 1.1.3. LỚP SEALED (tiếp theo) Phương thức sealed Sử dụng sealed trước 40. using System; phương thức để ngăn ko 41. class MyClass1 { cho lớp dẫn xuất override 42. public int x; public int y; 43. public virtual void Method() { 44. Console.WriteLine("virtual method"); 45. } 46. } 47. class MyClass : MyClass1 { 48. public override sealed void Method() { 49. Console.WriteLine("sealed method"); 50. } 51. } 52. class MainClass { 53. public static void Main() { 54. MyClass1 mC = new MyClass(); 55. mC.x = 110; mC.y = 150; 56. Console.WriteLine("x = {0}, y = {1}", mC.x, mC.y); 57. mC.Method(); 58. } 59. } 12 v1.0011106202
- PROPERTIES On passing, 'Finish' button: Goes to Next Slide On failing, 'Finish' button: Goes to Next Slide Allow user to leave quiz: At any time User may view slides after quiz: At any time User may attempt quiz: Unlimited times
- 2.2. GIAO DIỆN • 2.2.1. Định nghĩa và thực thi các giao diện; • 2.2.2. Kế thừa các giao diện. 14 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN • Giao diện (interface) định nghĩa những khả năng muốn có trong một lớp; • Giao diện quy định các chức năng nhưng không mô tả cụ thể chúng. Định nghĩa giao diện • Cú pháp định nghĩa một giao diện: [Bổ từ truy cập] interface { //Phần thân giao diện } • Bổ từ truy cập: public, private, protected, internal, và protected internal, ý nghĩa tương tự như các bổ sung truy cập của lớp. • Sau từ khóa interface là tên của giao diện. Tên có tiền tố là “I”, ví dụ như: IFile, IComparable, IDisposable, IStorable, Icloneable,… • Phần thân của giao diện là phần khai báo cho giao diện 15 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN (tiếp theo) Đặc điểm của giao diện • Chỉ có thể chứa những khai báo của phương thức, thuộc tính, bộ phận lập mục lục, và sự kiện; • Không có Constructor hay các trường; • Không cho phép chứa các phương thức nạp chồng; • Không cho phép khai báo những bổ từ trên các thành phần khi định nghĩa một giao diện; • Các thành phần bên trong giao diện luôn luôn là public và không thể khai báo virtual hay static. 16 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN (tiếp theo) Ví dụ giao diện: Khai báo property StudentID gồm 60. public interface IStudent hàm get ,set 61. { 62. int StudentID 63. { 64. get; 65. set; Khai báo phương thức AddSubject 66. } 67. void AddSubject(string subjectName); 68. } Phải định nghĩa {get,set} của StudentID và AddSubject ở lớp thực thi interface 17 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN (tiếp theo) • Thực thi giao diện Việc thực thi giao diện không sảy ra trong thân của nó mà nó chỉ thực thi trong lớp kế thừa từ nó. Nếu không thực thi các phương thức của giao diện thì khi biên dịch sẽ bị báo lỗi. • Khai báo thực thi giao diện: class : { // Thực thi các phương thức của lớp //Thực thi các phương thức của giao diện IDSkhoakt } 18 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN (tiếp theo) Ví dụ: thực thi giao diện 69. public class Student : IStudent 70. { Bắt buộc lớp student phải 71. private int studentID = 0; định nghĩa property Student 72. private ArrayList subjects = null; và hàm AddSubject 73. public Student() {} 74. public int StudentID 75. { 76. get { return studentID; } 77. set { studentID = value; } 78. } 79. public void AddSubject(string subjectName) 80. { 81. subjects.Add(subjectName); 82. } 83. } 19 v1.0011106202
- 2.2.1. ĐỊNH NGHĨA VÀ THỰC THI CÁC GIAO DIỆN (tiếp theo) • Thực thi nhiều giao diện C# cho phép một lớp thực thi nhiều hơn một giao diện. • Ví dụ: 84. public class QLSV : IDSkhoakt, IDSkhoatin 85. { 86. //Thực thi giao diện 87. } Trong lớp QLSV phải thực hiện tất cả các Giữa các giao diện được phương thức đã định nghĩa trong ngăn cách bởi dấu “,” hai giao diện cơ sở trên 20 v1.0011106202
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Ngôn ngữ C#
54 p | 1412 | 73
-
Bài giảng Ngôn ngữ lập trình C++: Chương 1 - Trần Minh Châu
17 p | 250 | 54
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 1: Ngôn ngữ lập trình C) - Chương 1: Ôn tập một số nội dung chính của NNLT C
31 p | 157 | 13
-
Bài giảng Ngôn ngữ lập trình C - Chương 1: Giới thiệu ngôn ngữ C
4 p | 104 | 8
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ lập trình C++) - Chương 5: Các lớp nhập/xuất trong C++
19 p | 132 | 7
-
Bài giảng Ngôn ngữ lập trình C và C++ (Phần 2: Ngôn ngữ C++) - Chương 2: Giới thiệu về ngôn ngữ lập trình C++
49 p | 137 | 7
-
Bài giảng Ngôn ngữ C#: Chương 1 - Trần Văn Tèo
13 p | 121 | 6
-
Bài giảng Ngôn ngữ lập trình C/C++ (Bài giảng tuần 1) – Nguyễn Hải Châu
7 p | 142 | 5
-
Bài giảng Ngôn ngữ C#: Chương 2 - Trần Văn Tèo
16 p | 81 | 5
-
Bài giảng Ngôn ngữ C# (233 tr)
233 p | 58 | 5
-
Bài giảng ngôn ngữ C#: Bài 1 - Chử Đức Hoàng
36 p | 31 | 4
-
Bài giảng Ngôn ngữ C#: Chương 3 - Trần Văn Tèo
21 p | 84 | 4
-
Bài giảng ngôn ngữ C#: Bài 2 - Chử Đức Hoàng
37 p | 21 | 3
-
Bài giảng ngôn ngữ C#: Bài 3 - Chử Đức Hoàng
34 p | 37 | 3
-
Bài giảng ngôn ngữ C#: Bài 5 - Chử Đức Hoàng
34 p | 29 | 3
-
Bài giảng ngôn ngữ C#: Bài 6 - Chử Đức Hoàng
49 p | 32 | 2
-
Bài giảng ngôn ngữ C#: Bài 7 - Chử Đức Hoàng
28 p | 33 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn