C# – Phần 1 – Tìm hiểu về Class và Object

Hằng ngày các bạn thường xuyên làm việc với class, code đồ các thứ ở trong này. Nhưng có bao giờ bạn tự hỏi rằng. Class là gì chưa? Hôm nay mình sẽ chỉ cho các bạn rõ hơn về Class và những thành phần của nó.

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;
        }
    }

 

 

F G+ T

tuandph

Khởi đầu với .NET từ năm 2013 đến nay. Hiện tại mình đang làm full-stack developer. Yêu thích lập trình & chia sẽ kiến thức. Thời gian rảnh thường làm những tool vui vui và viết lách kể lệ sự đời.

Leave a Reply

We're glad you have chosen to leave a comment. Your email address is required but will not be published.
  • Không nói tục
  • Không chửi bậy
  • Comment ko hài hước không support