- D 编程基础
- D 编程 - 主页
- D 编程 - 概述
- D 编程 - 环境
- D 编程 - 基本语法
- D 编程 - 变量
- D 编程 - 数据类型
- D 编程 - 枚举
- D 编程 - 文字
- D 编程 - 运算符
- D 编程 - 循环
- D 编程 - 决策
- D 编程 - 函数
- D 编程 - 字符
- D 编程 - 字符串
- D 编程 - 数组
- D 编程 - 关联数组
- D 编程 - 指针
- D 编程 - 元组
- D 编程 - 结构
- D 编程 - 联合
- D 编程 - 范围
- D 编程 - 别名
- D 编程 - Mixins
- D 编程 - 模块
- D 编程 - 模板
- D 编程 - 不可变
- D 编程 - 文件 I/O
- D 编程 - 并发
- D 编程 - 异常处理
- D 编程 - 合同
- D - 条件编译
- D 编程 - 面向对象
- D 编程 - 类和对象
- D 编程 - 继承
- D 编程 - 重载
- D 编程 - 封装
- D 编程 - 接口
- D 编程 - 抽象类
- D 编程 - 有用的资源
- D 编程 - 快速指南
- D 编程 - 有用的资源
- D 编程 - 讨论
D 编程 - 类和对象
类是 D 编程的核心功能,支持面向对象编程,通常称为用户定义类型。
类用于指定对象的形式,并将数据表示形式和用于操作该数据的方法组合到一个整洁的包中。类中的数据和函数称为类的成员。
D 类定义
当您定义类时,您就定义了数据类型的蓝图。这实际上并没有定义任何数据,但它定义了类名的含义,即该类的对象将由什么组成以及可以对这样的对象执行哪些操作。
类定义以关键字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确定其后面的类成员的访问属性。可以从类外部类对象范围内的任何位置访问公共成员。您还可以将类的成员指定为私有或受保护,我们将在小节中讨论。
定义 D 对象
类提供对象的蓝图,因此基本上对象是从类创建的。声明类的对象的方式与声明基本类型变量的方式完全相同。以下语句声明 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
需要注意的是,私有成员和受保护成员不能使用直接成员访问运算符 (.) 直接访问。很快您将了解如何访问私有成员和受保护成员。
D 中的类和对象
到目前为止,您已经对 D 类和对象有了非常基本的了解。还有与 D 类和对象相关的更多有趣概念,我们将在下面列出的各个小节中讨论 -