Như chúng ta đã biết từ những bài học trước, Lập trình hướng đối tượng là một phương pháp lập trình mạnh mẽ và linh hoạt. Trong bài viết này, chúng ta sẽ khám phá thêm về một khái niệm quan trọng trong lập trình hướng đối tượng đó là “Class trong C#”.
Contents
Khám phá Class trong C
Để hiểu rõ hơn về class, chúng ta cần có kiến thức cơ bản về các phần như Biến và Kiểu dữ liệu, Toán tử trong C#, Câu điều kiện trong C#, Cấu trúc cơ bản của vòng lặp trong C#, Cấu trúc hàm cơ bản trong C#, Mảng một chiều trong C#.
Bạn đang xem: Class trong Lập trình hướng đối tượng
Trong bài học này, chúng ta sẽ tìm hiểu các vấn đề sau:
- Class trong C# là gì?
- Khai báo, khởi tạo và sử dụng class trong C#.
- Phương thức khởi tạo và phương thức huỷ bỏ.
- So sánh giữa Struct và Class.
Class trong C# là gì?
Class trong C# được sử dụng để biểu diễn khái niệm về lớp trong lập trình hướng đối tượng. Một class trong C# bao gồm các thành phần như:
- Thuộc tính: là các thành phần dữ liệu hay biến.
- Phương thức: là các hàm thành phần thể hiện hành vi của một đối tượng thuộc lớp.
- Phương thức khởi tạo.
- Phương thức huỷ bỏ.
Class trong C# thực chất là một kiểu dữ liệu mới mà người dùng tự định nghĩa.
Khai báo, khởi tạo và sử dụng class trong C
Để khai báo một class trong C#, chúng ta sử dụng cú pháp như sau:
class <tên lớp>
{
<Phạm vi truy cập> <Các thành phần của lớp>;
}
Trong đó:
<tên lớp>
là tên do người dùng đặt và tuân theo quy tắc đặt tên đã học trong bài “Biến trong C#”.<Phạm vi truy cập>
bao gồm các từ khoá như public, protected, private, static, … sẽ được trình bày trong bài “Các loại phạm vi truy cập trong C#”.<Các thành phần của lớp>
bao gồm các biến, phương thức của lớp.
Ví dụ:
class Animal
{
public double Weight;
public double Height;
public void Run()
{
Console.WriteLine("Animal is running...");
}
}
Trong ví dụ trên, chúng ta đã khai báo một kiểu dữ liệu mới là Animal
. Ta có thể khai báo biến và sử dụng nó. Từ khoá public
cho phép ta truy cập các thành phần bên trong class. Lớp Animal
có hai thuộc tính là Weight
và Height
và một phương thức là Run
. Mọi đối tượng thuộc lớp này đều có ba thành phần trên.
Để khởi tạo một đối tượng thuộc lớp, chúng ta sử dụng toán tử new
. Ví dụ:
Animal Dog = new Animal();
Class là kiểu dữ liệu tham chiếu, vì vậy đối tượng được lưu trữ trên heap.
Để sử dụng các thuộc tính và phương thức bên trong lớp, chúng ta sử dụng cú pháp sau:
<tên đối tượng>.<tên thuộc tính>;
<tên đối tượng>.<tên phương thức>(<danh sách tham số nếu có>);
Ví dụ:
Dog.Run(); // Gọi phương thức của đối tượng
Phương thức khởi tạo và phương thức huỷ bỏ
Trong lập trình hướng đối tượng, mỗi đối tượng khi được tạo ra sẽ mang những đặc điểm riêng và tất cả các đối tượng của cùng một lớp đều giống nhau.
Xem thêm : Bach Khoa Aptech
Vì vậy, chúng ta có hai khái niệm quan trọng để thể hiện điều này đó là phương thức khởi tạo và phương thức huỷ bỏ.
Phương thức khởi tạo
Phương thức khởi tạo (Constructor) là những phương thức đặc biệt được gọi ngay khi tạo một đối tượng. Có hai loại phương thức khởi tạo:
- Phương thức khởi tạo không đối số: Không có tham số truyền vào và thường được sử dụng để khởi tạo các giá trị mặc định cho thuộc tính của đối tượng.
- Phương thức khởi tạo có đối số: Có tham số truyền vào và được sử dụng để khởi tạo giá trị cho thuộc tính của đối tượng.
Ví dụ:
class Cat
{
public double Weight;
public double Height;
// Constructor không đối số
public Cat()
{
Weight = 800;
Height = 10;
}
// Constructor có đối số
public Cat(int w, int h)
{
Weight = w;
Height = h;
}
public void Info()
{
Console.WriteLine("Height: " + Height + " Weight: " + Weight);
}
}
// Sử dụng
Cat BlackCat = new Cat(); // Constructor không đối số
BlackCat.Info(); // In ra thông tin Weight, Height có thực sự được khởi tạo giá trị chưa.
Cat WhiteCat = new Cat(1200, 30); // Constructor có đối số
WhiteCat.Info(); // In ra thông tin Weight, Height để xem có theo mong muốn chưa.
Phương thức huỷ bỏ
Phương thức huỷ bỏ (Destructor) là phương thức đặc biệt được gọi trước khi một đối tượng bị thu hồi. Nó được gọi bởi bộ thu dọn rác tự động (Garbage Collection) khi đối tượng không còn được sử dụng.
Ví dụ:
class Cat
{
public double Weight;
public double Height;
~Cat()
{
// Các thao tác mà bạn muốn thực hiện trước khi đối tượng bị huỷ
}
}
So sánh giữa Struct và Class
Struct và Class có nhiều điểm chung, nhưng Class có nhiều ưu điểm hơn. Dưới đây là một số điểm khác nhau giữa hai khái niệm này:
- Struct là kiểu dữ liệu nguyên thủy trong khi Class là kiểu dữ liệu tham chiếu.
- Struct không chứa null, trong khi Class có thể là null.
- Struct được lưu trữ trực tiếp trong stack, trong khi Class được lưu trữ trên heap thông qua con trỏ.
- Struct không hỗ trợ inheritance (kế thừa), trong khi Class có thể kế thừa từ một lớp khác.
- Khi một Class được truyền vào một hàm, bất kỳ thay đổi nào được thực hiện trong hàm sẽ được cập nhật trực tiếp, trong khi trong trường hợp của Struct thì không.
Kết luận
Qua bài viết này, chúng ta đã tìm hiểu về các khái niệm cơ bản liên quan đến Class trong lập trình hướng đối tượng. Chúng ta đã biết cách khai báo, khởi tạo và sử dụng class trong C#, cùng với phương thức khởi tạo và phương thức huỷ bỏ. Chúng ta cũng đã so sánh sự khác nhau giữa Struct và Class.
Hy vọng rằng bài viết này đã giúp bạn hiểu rõ hơn về Class trong lập trình hướng đối tượng. Hãy tiếp tục học tập và thực hành để ngày càng trở nên giỏi hơn trong lập trình. Nếu bạn có bất kỳ câu hỏi hoặc góp ý, hãy để lại bình luận để chúng ta có thể cùng nhau phát triển.
Nguồn: https://laptrinhc.edu.vn
Danh mục: Ngôn ngữ lập trình