1. Class là gì?
- Class là 1 file có dạng Abc.cs trong c#
- Biểu diễn 1 thực thể như SinhVien.cs, GiaoVien.cs
- Chứa các thuộc tính (properties) và các phương thức (methods) để phục vụ cho thực thể đó.
- 1 Class bao gồm Header và Body. Header chứa tên class, phạm vi try xuất (accessibility), định danh (Modifier).
- Accessibility
Accessibility Giải thích Public Có thể truy cập được ở mọi nơi. Trong project hoặc là trong reference DLL. Private Chỉ truy cập được ở chính trong class đó Protected Truy cập được ở chính trong class đó và lớp dẫn xuất của nó. Internal Sử dụng được trong phạm vi của Assembly (Project) hiện tại (Mặc định khi tạo class thì nó sẽ ở dạng này) Internal Protected Sử dụng được trong phạm vi của Assembly (Project) hiện tại, Trong chính nó và trong các lớp dẫn xuất (delivered) của nó - Trong c# thì bạn chỉ được dùng 2 Accessibility màu đỏ khi tạo class. Còn các Accessibility còn lại mình sẽ có 1 bài giới thiệu sâu hơn về sau này.
- Modifier
Modifier Explain Sealed Class này sẽ được niêm phong. Không kế thừa được. Chỉ gọi và dùng thôi Static Chỉ ra rằng class này sẽ được tạo khi Start Apps. Bạn chỉ cần gõ tên Class này và dùng được thuộc tính của nó. Không cần new Unsafe Chỉ ra rằng class này có chứa một số thuộc tính không an toàn như là Con trỏ. Abstract Class trừu tượng, chuyên tạo ra các phương thức trừu tượng để cho những thèn con của nó dùng.
2. Object là gì?
Khi một class được new ra thì sẽ được gọi là Object. và Object đó được gọi là 1 “instance of class” (thuật ngữ trong tiếng Anh).
SinhVien sv = new SinhVien();
3. Các thành phần chính của Class:
3.1 Using:
Nơi đây sẽ khai báo các thư viện dùng trong Class của mình
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; using System.Drawing.Imaging;
3.2 namespace:
Chỉ định package mà Class đó thuộc về
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Drawing; using System.Drawing.Imaging; namespace VnStart.Demo { public class SinhVien {
3.3 Class Accessibility + Modifier + Class Name:
Chỉ định khả năng truy cập, định danh và tên class
public static class SinhVien { }
3.4 Thuộc tính và phương thức:
public static class SinhVien { public string Name { get; set; } // Thuộc tính public string ShowName() // Phương thức { return Name; } }
3.5 Constructor:
Một constructor sẽ được gọi chỉ khi khởi tạo new Instance của class đó. Nó bắt buộc phải trùng tên với Class và không có kiểu trả về
public class SinhVien { public SinhVien() // constructor { // Những việc cần làm trong 1 constructor this.Name = "Tuấn Núi"; } public SinhVien(string svName) { this.Name = svName; } public string Name { get; set; } // Thuộc tính public string ShowName() // Phương thức { return Name; } } class Program { static void Main(string[] args) { SinhVien sv = new SinhVien("Tuấn Núi"); Console.Write(sv.Name); } }
3.6 Destructor:
Tương tự như Construtor nhưng Destructor chỉ được gọi khi object đã thực hiện xong tác vụ của nó. (Xong 1 phiên làm việc). Nó cũng cần trùng tên với tên class và rất hữu ích cho việc free memory sau khi sử dụng class đó.
public class SinhVien { public SinhVien() // constructor { // Những việc cần làm trong 1 constructor this.Name = "Tuấn Núi"; } public SinhVien(string svName) { this.Name = svName; } ~SinhVien() // destructor { Console.Write("thoat nhe"); } public string Name { get; set; } // Thuộc tính public string ShowName() // Phương thức { return Name; } }