Tìm hiểu cách tạo lớp học trong C #

Lập trình hướng đối tượng là một trong những mô hình lập trình phổ biến nhất. Điều này là do nó mô hình hóa cả dữ liệu và chức năng, đồng thời cho phép bạn suy nghĩ về các đối tượng trong thế giới thực. Các lớp là một khía cạnh cơ bản của lập trình hướng đối tượng vì chúng cung cấp kế hoạch chi tiết mà bạn cần để tạo các đối tượng.
C # là một ngôn ngữ lập trình đa mô hình phổ biến, sử dụng mô hình hướng đối tượng. Trong bài này, bạn sẽ học cách tạo và sử dụng các lớp trong C #.
Mục Lục
Tạo khai báo lớp
Trong C #, một lớp là một kiểu tham chiếu, sẽ chứa vô giá trị giá trị cho đến khi bạn tạo một đối tượng mới của lớp. Để tạo một lớp mới trong C #, bạn sẽ cần một số thành phần:
- Công cụ sửa đổi quyền truy cập.
- Các lớp từ khóa.
- Tên bạn muốn gán cho lớp.
- Một cặp dấu ngoặc nhọn mở và đóng (sẽ bao quanh các thuộc tính, hàm tạo và phương thức của lớp).
internal class Customer{ }
Đoạn mã trên tạo một lớp mới có thể truy cập được bởi các lớp khác trong cùng một assembly (tệp biên dịch). C # có chính xác sáu công cụ sửa đổi quyền truy cập mà bạn có thể sử dụng để kiểm soát mức khả năng truy cập của các lớp, biến và phương thức của mình. Sáu công cụ sửa đổi quyền truy cập là:
- công cộng: mọi lớp (bất kể assembly của nó là gì) đều có thể truy cập lớp public và các thành viên public của nó (thuộc tính, hàm tạo và phương thức).
- riêng: chỉ lớp private và các thành viên của nó mới có thể truy cập.
- được bảo vệ: chỉ các lớp dẫn xuất (lớp con và lớp cháu) mới có thể truy cập vào lớp được bảo vệ.
- nội bộ: chỉ các lớp trong cùng một assembly mới có thể truy cập vào lớp bên trong.
- được bảo vệ nội bộ: chỉ các lớp trong cùng một assembly hoặc một lớp dẫn xuất từ một assembly khác mới có thể truy cập vào lớp bên trong được bảo vệ.
- được bảo vệ riêng tư: chỉ các lớp dẫn xuất trong cùng một assembly mới có thể truy cập vào lớp được bảo vệ riêng.
Khai báo và truy cập các thuộc tính
Các thuộc tính là các khối xây dựng cho các lớp bạn tạo. Chúng giữ dữ liệu nhạy cảm và thường có công cụ sửa đổi quyền truy cập riêng tư hoặc được bảo vệ. Do đó, để truy cập các lớp này từ các lớp bên ngoài, bạn sẽ cần sử dụng các trình truy cập và trình biến đổi (getters và setters).
C # cho phép bạn khai báo các thuộc tính, trình đột biến và trình truy cập của mình như sau:
internal class Customer
{
private int IdNumber;
private string Name;
private double Total;
public void SetIdNumber(int IdNumber) { this.IdNumber = IdNumber; }
public void SetName(string Name) { this.Name = Name; }
public void SetTotal(double Total) { this.Total = Total; }
public int GetIdNumber() { return this.IdNumber; }
public string GetName() { return this.Name; }
public double GetTotal() { return this.Total; }
}
Các ngôn ngữ hướng đối tượng phổ biến khác cũng sử dụng cách tiếp cận trên. Trên thực tế, nếu bạn muốn tạo các lớp Java, bạn sẽ phải sử dụng cấu trúc trên. Tuy nhiên, C # hiện có một cách dễ dàng hơn để tạo thuộc tính và trình truy cập. Trong C #, lớp này có chức năng tương tự như lớp trên:
internal class Customer
{
public int IdNumber { get; set; }
public string Name { get; set; }
public double Total { get; set; }
}
Lớp trên chứa những gì C # gọi đặc tính, là sự kết hợp của các thuộc tính (trường) và phương thức. Với đặc tínhbạn có thể giảm một nửa mã khai báo thuộc tính, trình đột biến và trình truy cập của mình.
Khai báo hàm tạo
Các trình xây dựng là một khía cạnh cơ bản khác của một lớp. Để tạo một đối tượng từ một lớp, bạn sẽ phải gọi một trong các hàm tạo của nó. Mỗi hàm tạo có một công cụ sửa đổi truy cập tùy chọn và cùng tên với lớp của nó. Đối với các ngôn ngữ lập trình hướng đối tượng, thường có ba loại hàm tạo:
- Nhà xây dựng mặc định: không có đối số và cung cấp cho mỗi thuộc tính một giá trị mặc định.
- Hàm tạo chính: nhận một hoặc nhiều đối số (tùy thuộc vào số lượng biến trong lớp).
- Sao chép hàm tạo: lấy một hàm tạo khác làm đối số.
C # có một thuật ngữ ô cho các hàm tạo mặc định và chính ở trên — các hàm tạo phiên bản. Ngôn ngữ lập trình này cũng có hai hàm tạo khác (private và static). Bài viết này tập trung vào ba hàm tạo truyền thống.
Nhà xây dựng mặc định
public Customer()
{
IdNumber = 0;
Name = "unknown";
Total = 0;
}
Khối tạo chính
public Customer(int IdNumber, string Name, string CustomerType, double Total)
{
this.IdNumber = IdNumber;
this.Name = Name;
this.Total = Total;
}
Copy Constructor
public Customer(Customer previousCustomer)
{
this.IdNumber = previousCustomer.IdNumber;
this.Name = previousCustomer.Name;
this.Total = previousCustomer.Total;
}
Tạo phương pháp
Các phương thức không phải là một thành phần quan trọng của lớp, nhưng chúng rất hữu ích. Một lớp có thể có một hoặc nhiều phương thức. Một phương thức có một công cụ sửa đổi quyền truy cập, một kiểu trả về, một tên và một phần thân.
public string CustomerDetail()
{
return " ID: " + IdNumber + " Name: " + Name + " Total: " + Total;
}
Đoạn mã trên trả về một biểu diễn chuỗi của đối tượng khách hàng.
Tạo đối tượng
Sau khi tạo một lớp hoàn chỉnh, trang bị cho nó các thuộc tính, hàm tạo và một phương thức, bạn có thể bắt đầu tạo các đối tượng bằng cách sử dụng các hàm tạo khác nhau. Để tạo một đối tượng không có thuộc tính, bạn có thể sử dụng hàm tạo mặc định:
Customer John = new Customer();
Dòng mã trên tạo một khách hàng mặc định và gán nó cho một biến được gọi là John. Với Johnbạn có thể truy cập giá trị mặc định của từng thuộc tính khách hàng.
Console.WriteLine(John.Name);
Việc thực thi đoạn mã trên sẽ in ra nội dung sau trong bảng điều khiển:
Unknown
Bạn cũng có thể sử dụng John biến để truy cập bất kỳ phương thức nào trong lớp khách hàng.
Console.WriteLine(John.CustomerDetail());
Việc thực thi dòng mã trên sẽ in ra kết quả sau trong bảng điều khiển:
ID: 0 Name: unknown Total: 0
Để tạo một đối tượng với các thuộc tính, bạn sẽ sử dụng hàm tạo chính:
Customer John = new Customer(1001, "John Doe", 250.20);
Console.WriteLine(John.CustomerDetail());
Việc thực thi đoạn mã trên sẽ in ra kết quả sau trong bảng điều khiển:
ID: 1001 Name: John Doe Total: 250.2
Để tạo một bản sao của đối tượng ở trên, bạn có thể sử dụng hàm tạo bản sao:
Customer Johnny = new Customer(John);
Console.WriteLine(Johnny.CustomerDetail());
Việc thực thi đoạn mã trên sẽ in ra kết quả sau trong bảng điều khiển:
ID: 1001 Name: John Doe Total: 250.2
Như bạn có thể thấy hàm tạo bản sao là một bản sao của hàm tạo chính. Hàm tạo bản sao cũng có thể lấy một hàm tạo mặc định làm đối số:
Customer John = new Customer();
Customer Johnny = new Customer(John);
Console.WriteLine(Johnny.CustomerDetail());
Việc thực thi đoạn mã trên sẽ in ra kết quả sau trong bảng điều khiển:
ID: 0 Name: unknown Total: 0
Bây giờ bạn có thể tạo và sử dụng các lớp C #
Bạn có thể sử dụng mô hình hướng đối tượng trong C # để định nghĩa các lớp và tạo các đối tượng từ chúng. Bạn có thể tạo các phương thức cho mỗi lớp mà sau đó có thể hoạt động trên các thuộc tính của đối tượng của chúng.
Tuy nhiên, mô hình hướng đối tượng không phải là mô hình duy nhất bạn cần làm quen. Ba mô hình lập trình hàng đầu là mệnh lệnh, hướng đối tượng và chức năng.