D编程 类和对象
类(Class)类可以看成是创建Java 对象的模板,中的数据和函数称为该类的成员。
类定义
类定义以关键字 class 开头,后跟类名,类定义之后必须是分号或声明列表,如,我们使用关键字 class 定义Box数据类型,如下所示-
class Box {
public:
double length; //Length of a box
double breadth; //Breadth of a box
double height; //Height of a box
}
关键字 public 确定其后的类的成员的访问属性,可以从类外部在类对象范围内的任何位置访问公共成员。您还可以将类的成员指定为私有的private 或受保护protected的修饰符 ,我们将在小节中讨论。
定义对象
对象是从类创建的实例,以下语句声明Box类的两个实例对象 -
Box Box1; //Declare Box1 of type Box
Box Box2; //Declare Box2 of type Box
对象Box1和Box2都有自己的数据成员。
访问数据
可以使用直接成员访问运算符(.)访问类对象的公共数据成员,让我们尝试以下示例以使事情变得清晰起来-
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);
}
编译并执行上述代码后,将产生以下输出-
Volume of Box1 : 210
Volume of Box2 : 1560
重要的是要注意,不能使用直接成员访问运算符(.)直接访问私有成员和受保护成员。
类和对象
相关的其他有趣概念,我们将在下面列出的各个小节中讨论它们-
Sr.No. | Concept & 描述 |
---|---|
1 | Class member functions 类成员函数是一个在类定义中具有其定义或原型的函数,就像其他任何变量一样。 |
2 | Class access modifiers 类成员可以定义为公共public,私有private或受保护protected成员,默认情况下,成员将被假定为私有private成员。 |
3 | Constructor & destructor 类构造函数是类中的一个特殊函数,当创建该类的新对象时会调用该构造函数。 |
4 | The this pointer in D 每个对象都有一个特殊的指针 this ,它指向对象本身。 |
5 | Pointer to D classes 指向类的指针的操作与指向结构的指针的方法完全相同。实际上,类实际上只是其中包含函数的结构。 |
6 | Static members of a class 一个类的数据成员和函数成员都可以声明为static 静态的。 |
更多建议: