Lập trình D - Lớp & Đối tượng
Các lớp là đặc điểm trung tâm của lập trình D hỗ trợ lập trình hướng đối tượng và thường được gọi là các kiểu do người dùng định nghĩa.
Một lớp được sử dụng để chỉ định dạng của một đối tượng và nó kết hợp biểu diễn dữ liệu và các phương thức để thao tác dữ liệu đó thành một gói gọn gàng. Dữ liệu và các hàm trong một lớp được gọi là thành viên của lớp.
Định nghĩa Lớp D
Khi bạn xác định một lớp, bạn xác định một bản thiết kế cho một kiểu dữ liệu. Điều này không thực sự xác định bất kỳ dữ liệu nào, nhưng nó xác định tên lớp có nghĩa là gì, nghĩa là, một đối tượng của lớp sẽ bao gồm những gì và những thao tác nào có thể được thực hiện trên một đối tượng đó.
Định nghĩa lớp bắt đầu bằng từ khóa classtiếp theo là tên lớp; và phần thân của lớp, được bao bởi một cặp dấu ngoặc nhọn. Định nghĩa lớp phải được theo sau bởi dấu chấm phẩy hoặc danh sách các khai báo. Ví dụ: chúng tôi đã xác định kiểu dữ liệu Hộp bằng từ khóaclass như sau -
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
}
Từ khóa publicxác định các thuộc tính truy cập của các thành viên của lớp theo sau nó. Một thành viên công cộng có thể được truy cập từ bên ngoài lớp ở bất kỳ đâu trong phạm vi của đối tượng lớp. Bạn cũng có thể chỉ định các thành viên của một lớp làprivate hoặc là protected mà chúng ta sẽ thảo luận trong một phần phụ.
Định nghĩa đối tượng D
Một lớp cung cấp bản thiết kế cho các đối tượng, vì vậy về cơ bản một đối tượng được tạo ra từ một lớp. Bạn khai báo các đối tượng của một lớp với đúng kiểu khai báo mà bạn khai báo các biến kiểu cơ bản. Các câu lệnh sau khai báo hai đối tượng của lớp Box:
Box Box1; // Declare Box1 of type Box
Box Box2; // Declare Box2 of type Box
Cả hai đối tượng Box1 và Box2 đều có bản sao dữ liệu của riêng chúng.
Truy cập các thành viên dữ liệu
Các thành viên dữ liệu công khai của các đối tượng của một lớp có thể được truy cập bằng toán tử truy cập thành viên trực tiếp (.). Chúng ta hãy thử ví dụ sau để làm rõ mọi thứ -
import std.stdio;
class Box {
public:
double length; // Length of a box
double breadth; // Breadth of a box
double height; // Height of a box
}
void main() {
Box box1 = new Box(); // Declare Box1 of type Box
Box box2 = new Box(); // Declare Box2 of type Box
double volume = 0.0; // Store the volume of a box here
// box 1 specification
box1.height = 5.0;
box1.length = 6.0;
box1.breadth = 7.0;
// box 2 specification
box2.height = 10.0;
box2.length = 12.0;
box2.breadth = 13.0;
// volume of box 1
volume = box1.height * box1.length * box1.breadth;
writeln("Volume of Box1 : ",volume);
// volume of box 2
volume = box2.height * box2.length * box2.breadth;
writeln("Volume of Box2 : ", volume);
}
Khi đoạn mã trên được biên dịch và thực thi, nó tạo ra kết quả sau:
Volume of Box1 : 210
Volume of Box2 : 1560
Điều quan trọng cần lưu ý là các thành viên riêng tư và được bảo vệ không thể được truy cập trực tiếp bằng toán tử truy cập thành viên trực tiếp (.). Trong thời gian ngắn, bạn sẽ biết cách truy cập các thành viên riêng tư và được bảo vệ.
Lớp và Đối tượng trong D
Cho đến nay, bạn đã có ý tưởng rất cơ bản về Lớp và Đối tượng D. Có những khái niệm thú vị khác liên quan đến Lớp và Đối tượng D mà chúng ta sẽ thảo luận trong các phần phụ khác nhau được liệt kê bên dưới -
Sr.No. | Khái niệm & Mô tả |
---|---|
1 | Chức năng thành viên lớp Hàm thành viên của một lớp là một hàm có định nghĩa hoặc nguyên mẫu của nó trong định nghĩa lớp giống như bất kỳ biến nào khác. |
2 | Công cụ sửa đổi quyền truy cập lớp Một thành viên trong lớp có thể được định nghĩa là công khai, riêng tư hoặc được bảo vệ. Theo mặc định, các thành viên sẽ được coi là riêng tư. |
3 | Bộ tạo & bộ hủy Hàm tạo lớp là một hàm đặc biệt trong lớp được gọi khi một đối tượng mới của lớp được tạo. Hàm hủy cũng là một hàm đặc biệt được gọi khi đối tượng đã tạo bị xóa. |
4 | Con trỏ này trong D Mọi đối tượng đều có một con trỏ đặc biệt this mà trỏ đến chính đối tượng. |
5 | Con trỏ đến các lớp D Một con trỏ đến một lớp được thực hiện giống hệt như cách con trỏ tới một cấu trúc. Trong thực tế, một lớp thực sự chỉ là một cấu trúc với các chức năng trong đó. |
6 | Các thành viên tĩnh của một lớp Cả thành viên dữ liệu và thành viên hàm của một lớp đều có thể được khai báo là tĩnh. |