Bài 3 giới thiệu về lập trình hướng đối trượng trong C#. Chương này gồm có các nội dung chính như: Namespace, lớp và đối tượng; các thành phần của lớp, đối tượng; constructors và destructors; nạp chồng phương thức (Overloading); các phương thức chồng toán tử (Operator Overloading); viết lại các thành phần của lớp (Overriding); kế thừa (Inheritance). Mời các bạn cùng tham khảo.
Lập trình Windows với Microsoft® NET Giảng viên: ThS Trần Bá Nhiệm Lập trình hướng đối trượng C# Namespace, Lớp Đối tượng Các thành phần Lớp , Đối tượng Constructors Destructors Nạp chồng phương thức (Overloading) Các phương thức chồng toán tử ( Operator Overloading ) Viết lại thành phần lớp (Overriding) Kế thừa (Inheritance) Namespace Tránh trùng lắp đặt tên lớp Quản lý mã dễ dàng Giảm bớt phức tạp chạy với ứng dụng khác namespace Tên_Namespace { //Khai báo lớp… } Có thể khai báo namespace, class…,bên namespace khác Namespace Ví dụ : namespace Sample { public class A { } public class B { } } Namespace Ví dụ : namespace Sample_2 { public class A { } namspace Sample_3 { //… } } Lớp Đối tượng Khai báo : class Tên_lớp { //khai báo thành phần… } Ví dụ : class KhachHang { private int mMaKhachHang; private string mTenKhachHang; } Lớp Đối tượng class KhachHang { //Các thành phần //Các phương thức public void In() { //Các câu lệnh… } } Các thành phần Lớp Thành phần lớp - khai báo với từ khóa static class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } } Sử dụng : TênLớp.TênThànhPhần ví dụ : KhachHang.mTenKH = 1; KhachHang.In() ; Các thành phần Lớp Thành phần đối tượng : class KhachHang { private int mMaKH; public string mTenKH; public void In() { // Các câu lệnh } } Sử dụng : TênĐốiTượng.TênThànhPhần ví dụ : KhachHang objKH = new KhachHang() objKH In() ; objKH.mTenKH = “ABC”; Constructors C# Phương thức đặc biệt lớp Được gọi đối tượng tạo Dùng để khởi dựng đối tượng Cùng tên với tên lớp Khơng có giá trị trả Constructors C# class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } } Constructor có tham số Constructors C# class KhachHang { private int mMaKH; private string mTenKH; public KhachHang() { mKH = 0; mTenKH = “ABC”; } public KhachHang(int MaKH, string TenKH) { mKH = MaKH; mTenKH = TenKH; } } Static Constructor Gọi lần trước đối tượng tạo Khơng có tham số class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } static KhachHang() { // Các câu lệnh… } } Private Constructor Sử dụng thành phần lớp static Không cần thiết tạo đối tượng cho lớp class KhachHang { private static int mMaKH; public static string mTenKH; public static void In() { // Các câu lệnh } private KhachHang() { } } Destructors C# Được gọi Garbage Collector Được gọi tự động đối tượng hủy class KhachHang { public KhachHang() { mKH = 0; mTenKH = “ABC”; } ~KhachHang() { // Các câu lệnh… } } Overloading Methods Các phương thức có tên, khác danh sách tham số kiểu tham số public void In() { // Các câu lệnh } public void In(string s) { // Các câu lệnh } public void In(int s) { // Các câu lệnh } ... đặt tên lớp Quản lý mã dễ dàng Giảm bớt phức tạp chạy với ứng dụng khác namespace Tên_Namespace { //Khai báo lớp… } Có thể khai báo namespace, class…,bên namespace khác Namespace Ví dụ... Ví dụ : namespace Sample_2 { public class A { } namspace Sample _3 { //… } } Lớp Đối tượng Khai báo : class Tên_lớp { //khai báo thành phần… } Ví dụ : class KhachHang { private int mMaKhachHang;... //Các phương thức public void In() { //Các câu lệnh… } } Các thành phần Lớp Thành phần lớp - khai báo với từ khóa static class KhachHang { private static int mMaKH; public static string mTenKH;