无涯教程-D语言 - 封装

65 阅读1分钟

封装是一种面向对象的编程概念,它将数据和将数据操作在一起的函数绑定在一起,并且可以确保不受外界干扰,封装导致了数据隐藏的重要OOP概念。

一个类可以包含 privateprotectedpublic 修饰符,默认情况下,类中定义的所有项目都是private私有的。如-

class Box { 
   public: 
      double getVolume() { 
         return length * breadth * height; 
      } 
   private: 
      double length;      //长
      double breadth;     //宽
      double height;      //高
};

变量的length,breadth和height为 private私有的,这意味着它们只能在Box类中访问,这是实现封装的一种方式。

要使某个类的一部分成为 public 公开的,需要 public 关键字修饰它,程序中的所有函数都可以访问它修饰的所有变量或函数。

数据封装

在其中使用公共public成员和私有private成员实现类的任何D程序都是数据封装和数据抽象的一个示例。考虑以下示例-

import std.stdio;

class Adder { public: //构造函数 this(int i=0) { total=i; }

  </span><span class="com">//类方法</span><span class="pln">
  </span><span class="kwd">void</span><span class="pln"> addNum</span><span class="pun">(</span><span class="kwd">int</span><span class="pln"> number</span><span class="pun">)</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     total </span><span class="pun">+=</span><span class="pln"> number</span><span class="pun">;</span><span class="pln"> 
  </span><span class="pun">}</span><span class="pln"> 
  </span><span class="pln">
  </span><span class="kwd">int</span><span class="pln"> getTotal</span><span class="pun">()</span><span class="pln"> </span><span class="pun">{</span><span class="pln"> 
     </span><span class="kwd">return</span><span class="pln"> total</span><span class="pun">;</span><span class="pln"> 
  </span><span class="pun">};</span><span class="pln"> 

private: //隐藏字段 int total; }

void main( ) { Adder a=new Adder();

a.addNum(10); a.addNum(20); a.addNum(30);
writeln
("Total ",a.getTotal()); }

编译并执行上述代码后,将产生以下输出-

Total 60

上一类将数字相加,然后返回总和。公共方法 addNum 和 getTotal 是与外界的接口,用户需要了解它们才能使用该类。

参考链接

www.learnfk.com/d-programmi…