×

Tạo và sử dụng các lớp và đối tượng trong C#

Trong lập trình C#, khái niệm về lớp và đối tượng là những yếu tố cốt lõi, giúp lập trình viên có thể tổ chức và quản lý mã nguồn một cách hiệu quả và trực quan. Việc sử dụng các lớp và đối tượng không chỉ giúp tối ưu mã nguồn mà còn nâng cao tính bảo mật và khả năng mở rộng của chương trình.

Khái Niệm về Lớp

Lớp (Class) là một mẫu (template) định nghĩa các thuộc tính (properties) và phương thức (methods) dùng chung cho các đối tượng được tạo ra từ lớp đó. Một lớp có thể được xem như bản thiết kế cho các đối tượng.

Cấu Trúc của Một Lớp

Trong C#, một lớp được định nghĩa bằng từ khóa class. Dưới đây là ví dụ cơ bản về cách định nghĩa một lớp:

public class Person
{
    // Thuộc tính
    public string Name { get; set; }
    public int Age { get; set; }
    
    // Phương thức
    public void Introduce()
    {
        Console.WriteLine("Hello, my name is " + Name + " and I am " + Age + " years old.");
    }
}

Trong ví dụ này, Person là lớp có hai thuộc tính NameAge và một phương thức Introduce.

Khái Niệm về Đối Tượng

Đối tượng (Object) là một thể hiện cụ thể của một lớp. Đối tượng được tạo ra từ lớp và sử dụng các thuộc tính và phương thức đã được định nghĩa trong lớp đó.

Tạo và Sử Dụng Đối Tượng

Để tạo một đối tượng từ lớp, sử dụng từ khóa new. Ví dụ:

public class Program
{
    public static void Main()
    {
        // Tạo đối tượng từ lớp Person
        Person person1 = new Person();
        
        // Gán giá trị cho các thuộc tính
        person1.Name = "John Doe";
        person1.Age = 30;
        
        // Gọi phương thức
        person1.Introduce();
    }
}

Khi chạy đoạn mã trên, chương trình sẽ hiển thị:

Hello, my name is John Doe and I am 30 years old.

Khởi Tạo với Constructor

Constructor là một phương thức đặc biệt được gọi khi một đối tượng được tạo ra. Nó cho phép khởi tạo giá trị ban đầu cho các thuộc tính của đối tượng.

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
    
    // Constructor
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }
    
    public void Introduce()
    {
        Console.WriteLine("Hello, my name is " + Name + " and I am " + Age + " years old.");
    }
}

Sử dụng constructor để tạo và khởi tạo đối tượng:

public class Program
{
    public static void Main()
    {
        // Sử dụng constructor để khởi tạo đối tượng
        Person person1 = new Person("Jane Doe", 25);
        person1.Introduce();
    }
}

Tính Đóng Gói, Kế Thừa và Đa Hình

C# hỗ trợ các tính chất quan trọng của lập trình hướng đối tượng: encapsulation (đóng gói), inheritance (kế thừa) và polymorphism (đa hình).

Đóng Gói

Đóng gói cho phép giấu đi các thành phần bên trong của lớp, chỉ công khai những gì thật sự cần thiết. Điều này giúp bảo vệ dữ liệu và giảm thiểu sự phụ thuộc giữa các phần khác nhau của chương trình.

public class Person
{
    private string Name;
    private int Age;
    
    public void SetName(string name)
    {
        Name = name;
    }
    
    public string GetName()
    {
        return Name;
    }
}

Kế Thừa

Kế thừa cho phép một lớp con (derived class) sử dụng các thuộc tính và phương thức của lớp cha (base class). Ví dụ:

public class Employee : Person
{
    public string Position { get; set; }
    
    public void Work()
    {
        Console.WriteLine(GetName() + " is working as a " + Position);
    }
}

Đa Hình

Đa hình cho phép xử lý các đối tượng thuộc nhiều lớp khác nhau thông qua cùng một giao diện. Điều này có thể được thực hiện qua overriding (ghi đè) các phương thức.

public class Person
{
    public virtual void Introduce()
    {
        Console.WriteLine("I am a person.");
    }
}

public class Employee : Person
{
    public override void Introduce()
    {
        Console.WriteLine("I am an employee.");
    }
}

Trong Main:

Person person = new Employee();
person.Introduce();  // Hiển thị: I am an employee.

Kết Luận

Việc nắm vững và sử dụng đúng các khái niệm về lớp và đối tượng sẽ giúp lập trình viên tạo ra được những ứng dụng tốt hơn, dễ bảo trì và mở rộng hơn. Thông qua các ví dụ và giải thích ở trên, hy vọng bạn đã có cái nhìn rõ ràng hơn về cách tạo và sử dụng các lớp và đối tượng trong C#.

Comments