D编程 类和对象

2021-09-01 11:34 更新

类(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 & 描述
1Class member functions

类成员函数是一个在类定义中具有其定义或原型的函数,就像其他任何变量一样。

2Class access modifiers

类成员可以定义为公共public,私有private或受保护protected成员,默认情况下,成员将被假定为私有private成员。

3Constructor & destructor

类构造函数是类中的一个特殊函数,当创建该类的新对象时会调用该构造函数。

4The this pointer in D

每个对象都有一个特殊的指针 this ,它指向对象本身。

5Pointer to D classes

指向类的指针的操作与指向结构的指针的方法完全相同。实际上,类实际上只是其中包含函数的结构。

6Static members of a class

一个类的数据成员和函数成员都可以声明为static 静态的。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号