Lập trình hướng đối tượng trong C# – Phần 6
1. Lập trình hướng đối tượng (OOP) trong C# là gì?
Lập trình hướng đối tượng (Object-Oriented Programming – OOP) là một phương pháp lập trình dựa trên việc mô hình hóa các đối tượng trong thế giới thực. C# là một ngôn ngữ hỗ trợ mạnh mẽ lập trình hướng đối tượng với các tính năng như:
✔ Đóng gói (Encapsulation)
✔ Kế thừa (Inheritance)
✔ Đa hình (Polymorphism)
✔ Trừu tượng (Abstraction)
2. Lớp và đối tượng trong C#
2.1. Khai báo một lớp
class Person
{
public string Name;
public int Age;
public void Introduce()
{
Console.WriteLine($"Xin chào, tôi là {Name}, {Age} tuổi.");
}
}
2.2. Tạo đối tượng
Person person1 = new Person();
person1.Name = "Thảo";
person1.Age = 22;
person1.Introduce();
⏳ Kết quả:
Xin chào, tôi là Thảo, 22 tuổi.
3. Phạm vi truy cập trong C#
| Từ khóa | Mô tả |
|---|---|
public |
Truy cập từ bất kỳ đâu |
private |
Chỉ truy cập được trong nội bộ lớp |
protected |
Truy cập trong nội bộ lớp và lớp con |
internal |
Truy cập trong cùng assembly |
Ví dụ:
class Student
{
private string name;
public void SetName(string studentName)
{
name = studentName;
}
public void ShowName()
{
Console.WriteLine("Tên sinh viên: " + name);
}
}
4. Constructor trong C#
Constructor là một phương thức đặc biệt được gọi khi tạo đối tượng.
class Car
{
public string Brand;
public Car(string brand)
{
Brand = brand;
}
public void ShowBrand()
{
Console.WriteLine("Hãng xe: " + Brand);
}
}
// Sử dụng
Car myCar = new Car("Toyota");
myCar.ShowBrand();
⏳ Kết quả:
Hãng xe: Toyota
5. Kế thừa trong C# (Inheritance)
Lớp con có thể kế thừa từ lớp cha để mở rộng chức năng.
class Animal
{
public void Speak()
{
Console.WriteLine("Động vật có thể phát ra âm thanh");
}
}
class Dog : Animal
{
public void Bark()
{
Console.WriteLine("Chó sủa gâu gâu!");
}
}
// Sử dụng
Dog myDog = new Dog();
myDog.Speak(); // Kế thừa từ lớp Animal
myDog.Bark();
⏳ Kết quả:
Động vật có thể phát ra âm thanh
Chó sủa gâu gâu!
6. Đa hình trong C# (Polymorphism)
Đa hình cho phép một phương thức có thể có nhiều cách triển khai khác nhau.
6.1. Ghi đè phương thức (override)
class Parent
{
public virtual void Show()
{
Console.WriteLine("Đây là lớp cha");
}
}
class Child : Parent
{
public override void Show()
{
Console.WriteLine("Đây là lớp con");
}
}
// Sử dụng
Parent obj = new Child();
obj.Show();
⏳ Kết quả:
Đây là lớp con
6.2. Nạp chồng phương thức (method overloading)
class MathOperations
{
public int Add(int a, int b)
{
return a + b;
}
public double Add(double a, double b)
{
return a + b;
}
}
// Sử dụng
MathOperations math = new MathOperations();
Console.WriteLine(math.Add(5, 10)); // 15
Console.WriteLine(math.Add(5.5, 10.2)); // 15.7
7. Trừu tượng trong C# (Abstraction)
Lớp trừu tượng không thể tạo đối tượng trực tiếp mà chỉ dùng để kế thừa.
abstract class Shape
{
public abstract void Draw();
}
class Circle : Shape
{
public override void Draw()
{
Console.WriteLine("Vẽ hình tròn");
}
}
// Sử dụng
Shape shape = new Circle();
shape.Draw();
⏳ Kết quả:
Vẽ hình tròn
8. Giao diện trong C# (Interface)
Interface giúp định nghĩa một tập hợp phương thức mà các lớp phải triển khai.
interface IAnimal
{
void MakeSound();
}
class Cat : IAnimal
{
public void MakeSound()
{
Console.WriteLine("Meo meo!");
}
}
// Sử dụng
IAnimal myCat = new Cat();
myCat.MakeSound();
⏳ Kết quả:
Meo meo!
9. Tóm tắt bài học
✅ Lớp & đối tượng – Lớp là bản thiết kế, đối tượng là thực thể của lớp.
✅ Phạm vi truy cập – public, private, protected, internal.
✅ Constructor – Hàm khởi tạo chạy khi tạo đối tượng.
✅ Kế thừa – Giúp tái sử dụng mã nguồn.
✅ Đa hình – Ghi đè (override) và nạp chồng (overloading).
✅ Trừu tượng – Lớp abstract không thể tạo đối tượng.
✅ Giao diện – Định nghĩa phương thức mà lớp phải triển khai.
💡 Bài tiếp theo:
👉 Xử lý tập tin trong C# – Phần 7 📂