0
0
Lập trình
Admin Team
Admin Teamtechmely

Tất Tần Tật Về Lập Trình Hướng Đối Tượng Trong C#

Đăng vào 1 tuần trước

• 4 phút đọc

Chủ đề:

OOPhuong doi tuong

Tất Tần Tật Về Lập Trình Hướng Đối Tượng Trong C#

Lập trình hướng đối tượng (OOP) là một phương pháp lập trình mạnh mẽ, ngày càng trở nên phổ biến trong việc phát triển ứng dụng phần mềm. Thay vì lập trình theo kiểu tuyến tính, OOP giúp lập trình viên xây dựng các ứng dụng bằng cách sử dụng các "đối tượng" với hai thành phần chính:

  • Tính chất (Properties): Mô tả trạng thái của đối tượng.
  • Phương thức (Methods): Xác định hành động mà đối tượng có thể thực hiện.

1. Đóng Gói (Encapsulation)

Định Nghĩa

Đóng gói là một tính chất quan trọng trong OOP, cho phép bảo vệ dữ liệu của đối tượng bằng cách giới hạn quyền truy cập. Dữ liệu và các phương thức thao tác với dữ liệu được gom lại trong một lớp, giúp ngăn chặn sự truy cập trái phép.

Ví Dụ

csharp Copy
public class BankAccount
{
    private double balance; // Biến riêng tư

    public void Deposit(double amount) // Phương thức công khai
    {
        if (amount > 0)
        {
            balance += amount;
        }
    }

    public double GetBalance() // Phương thức công khai
    {
        return balance;
    }
}

Trong ví dụ trên, biến balance được đóng gói, chỉ có thể được truy cập thông qua các phương thức như DepositGetBalance.

2. Kế Thừa (Inheritance)

Định Nghĩa

Kế thừa cho phép lập trình viên tạo ra một lớp mới dựa trên một lớp đã có, từ đó tái sử dụng mã và mở rộng chức năng mà không phải viết lại mã.

Ví Dụ

csharp Copy
public class Animal
{
    public void Eat()
    {
        Console.WriteLine("Animal is eating.");
    }
}

public class Dog : Animal // Lớp Dog kế thừa từ lớp Animal
{
    public void Bark()
    {
        Console.WriteLine("Dog is barking.");
    }
}

Lớp Dog kế thừa phương thức Eat từ lớp Animal và có thêm phương thức Bark độc quyền của mình.

3. Đa Hình (Polymorphism)

Định Nghĩa

Đa hình cho phép các đối tượng thuộc các lớp khác nhau được xử lý qua cùng một giao diện, giúp mã trở nên linh hoạt hơn.

Ví Dụ

csharp Copy
public class Animal
{
    public virtual void Speak()
    {
        Console.WriteLine("Animal speaks.");
    }
}

public class Cat : Animal
{
    public override void Speak() // Ghi đè phương thức Speak
    {
        Console.WriteLine("Cat meows.");
    }
}

public class Dog : Animal
{
    public override void Speak() // Ghi đè phương thức Speak
    {
        Console.WriteLine("Dog barks.");
    }
}

public void MakeAnimalSpeak(Animal animal)
{
    animal.Speak(); // Phương thức gọi
}

Khi sử dụng hàm MakeAnimalSpeak với một đối tượng Dog hoặc Cat, phương thức Speak tương ứng sẽ được gọi, giúp tạo nên tính linh hoạt trong mã nguồn.

4. Trừu Tượng (Abstraction)

Định Nghĩa

Trừu tượng cho phép người lập trình định nghĩa các lớp hoặc giao diện chỉ bằng cách xác định các phương thức mà không cung cấp chi tiết cụ thể. Điều này hỗ trợ người dùng chỉ cần hiểu cách sử dụng mà chưa cần biết rõ về cách thực hiện.

Ví Dụ

csharp Copy
public abstract class Shape // Lớp trừu tượng
{
    public abstract double Area(); // Phương thức trừu tượng
}

public class Circle : Shape
{
    public double Radius { get; set; }

    public override double Area()
    {
        return Math.PI * Radius * Radius; // Cách tính diện tích hình tròn
    }
}

public class Rectangle : Shape
{
    public double Width { get; set; }
    public double Height { get; set; }

    public override double Area()
    {
        return Width * Height; // Cách tính diện tích hình chữ nhật
    }
}

Trong ví dụ trên, lớp Shape định nghĩa phương thức trừu tượng Area, và các lớp CircleRectangle cung cấp chi tiết cụ thể cho cách tính diện tích từng hình dạng.

5. Tại Sao Bạn Nên Sử Dụng OOP

  • Bốn tính chất cơ bản của lập trình hướng đối tượng (Đóng gói, Kế thừa, Đa hình, và Trừu tượng) giúp lập trình viên xây dựng các ứng dụng dễ bảo trì, mở rộng và linh hoạt hơn.
  • Những tính chất này không chỉ là nền tảng để phát triển phần mềm hiệu quả mà còn tối ưu trong việc tiết kiệm thời gian và công sức cho lập trình viên.
    source: viblo
Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào