首页 > 其他分享 >无涯教程-D语言 - 类和对象

无涯教程-D语言 - 类和对象

时间:2023-11-18 18:03:48浏览次数:52  
标签:Box box 教程 语言 double 成员 无涯 box1 box2

类(Class)类可以看成是创建Java 对象的模板,中的数据和函数称为该类的成员。

类定义

类定义以关键字class开头,后跟类名,类定义之后必须是分号或声明列表,如,我们使用关键字 class 定义Box数据类型,如下所示-

class Box { 
   public: 
      double length;   //box的长度
      double breadth;  //box的宽度
      double height;   //box的高度
}

关键字 public 确定其后的类的成员的访问属性,可以从类外部在类对象范围内的任何位置访问公共成员。您还可以将类的成员指定为私有的private 或受保护protected的修饰符 ,我们将在小节中讨论。

定义对象

对象是从类创建的实例,以下语句声明Box类的两个实例对象 -

Box Box1;          //声明类型为 Box 的 Box1
Box Box2;          //声明类型为 Box 的 Box2

对象Box1和Box2都有自己的数据成员。

访问数据

可以使用直接成员访问运算符(.)访问类对象的公共数据成员,让我们尝试以下示例以使事情变得清晰起来-

import std.stdio;

class Box { 
   public: 
      double length;   //box的长度
      double breadth;  //box的宽度
      double height;   //box的高度
}
  
void main() { 
   Box box1=new Box();    //声明类型为 Box 的 Box1
   Box box2=new Box();    //声明类型为 Box 的 Box2
   double volume=0.0;     //在这里存储box的体积
   
   //box1赋值
   box1.height=5.0; 
   box1.length=6.0; 
   box1.breadth=7.0; 
   
   //box2赋值
   box2.height=10.0; 
   box2.length=12.0; 
   box2.breadth=13.0;
   
   //box1的体积 
   volume=box1.height * box1.length * box1.breadth; 
   writeln("Volume of Box1 : ",volume);
   
   //box2的体积
   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 静态的。

参考链接

https://www.learnfk.com/d-programming/d-programming-classes-objects.html

标签:Box,box,教程,语言,double,成员,无涯,box1,box2
From: https://blog.51cto.com/u_14033984/8464012

相关文章

  • 抖音自动关注点赞评论脚本,可批量导入视频连接,易语言精易VIP模块开发
    这个软件也是客户定制的,然后调用的是精易论坛的一个VIP模块,一个月收费10块钱,但是功能很强大,它可以直接调用你电脑上安装的谷歌浏览器,然后在浏览器里面直接执行数据功能,比如数据包截取,COOKIE的导入导出,还有JS网页端直接,填表操作等功能,所以用这个模块开发了一个抖音私信的功能,可以直......
  • C语言指针的应用场景
    C语言指针的应用场景指针是C语言的精华和灵魂,不懂指针,基本等同于不会C语言。掌握指针,让学会C语言不再成为梦想而成为现实。指针基本上有三大类:指向数据的指针指向函数的指针泛型指针(void*)指针的应用场景可以分为以下10类:-1.与函数相关的使用-1.1在函数中用作输出......
  • 自然语言处理预训练——词的相似性和类比任务
    在 14.4节中,我们在一个小的数据集上训练了一个word2vec模型,并使用它为一个输入词寻找语义相似的词。实际上,在大型语料库上预先训练的词向量可以应用于下游的自然语言处理任务,这将在后面的 15节中讨论。为了直观地演示大型语料库中预训练词向量的语义,让我们将预训练词向量应用到......
  • 无涯教程-D语言 - 异常处理
    Exception异常是在程序执行期间出现的问题,异常提供了一种将控制权从程序的一部分转移到另一部分的方法。D异常处理基于三个关键字try,catch和throw。throw   - 出现问题时,程序将引发异常。这是通过throw关键字完成的。catch   -  catch关键字用于捕获......
  • 自然语言处理预训练——子词嵌入
    在英语中,“helps”“helped”和“helping”等单词都是同一个词“help”的变形形式。“dog”和“dogs”之间的关系与“cat”和“cats”之间的关系相同,“boy”和“boyfriend”之间的关系与“girl”和“girlfriend”之间的关系相同。在法语和西班牙语等其他语言中,许多动词有40多种变......
  • go语言window|mac|linux下交叉编译其他平台的软件包
    go语言window|mac|linux下交叉编译其他平台的软件包注意:go1.17发现直接使用set是不起作用的,必须要使用goenv-w来设置一、设置编译环境,需要发布哪个平台Window下1、设置Linux编译环境SETCGO_ENABLED=0setGOARCH=amd64setGOOS=linux2、设置Mac编译环境goenv......
  • 无涯教程-D语言 - 并发
    并发使程序在多个线程上运行,一个示例是Web服务器同时响应多个客户端,并发通过消息传递很容易,但是它们基于数据共享则很难编写。启动线程函数spawn()将指针作为参数,并从该函数启动新线程,该函数执行的任何操作,包括它可能调用的其他函数,都将在新线程上执行。importstd.stdio;im......
  • 磁力搜索引擎大全教程,如何使用磁力链接。
      磁力链接是一种特殊的下载链接,磁力链接可以理解为一个文件识别码,而并非具体的资源地址,下载软件需要拿着这个识别码去整个互联网(DHT网络)去寻找持有该资源的用户(节点),如果找到则可以进行传输下载。一般年代越久远的磁力链接下载成功的几率越小,因为持有该资源的节点越少。一......
  • 无涯教程-D语言 - 文件I/O
    文件File由std.stdio模块的File结构表示,文件表示字节序列,无论是文本文件还是二进制文件都没有关系,D编程语言提供对高级函数的访问/处理存储设备上文件。打开文件首先通过指定文件名和所需的访问权限来打开文件。Filefile=File(filepath,"mode");在这里,filename是字符串......
  • c5w2_自然语言处理与词嵌入
    自然语言处理与词嵌入词嵌入one-hot向量表示了每个词在词汇表中的位置,但是每个one-hot向量的内积为0,不能表示出每个词之间的相互关系。Iwantaglassoforangejuice.Iwantaglassofapple__.例如,对于上述的这样一句话,通过学习算法可能知道在orange后面填入juice是一......