codecamp

D编程 封装

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

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

class Box { 
   public: 
      double getVolume() { 
         return length * breadth * height; 
      } 
   private: 
      double length;      //Length of a box 
      double breadth;     //Breadth of a box 
      double height;      //Height of a box 
};

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

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

数据封装

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

import std.stdio;
  
class Adder { 
   public: 
      //constructor 
      this(int i=0) { 
         total=i; 
      } 
      
      //interface to outside world 
      void addNum(int number) { 
         total += number; 
      } 
      
      //interface to outside world 
      int getTotal() { 
         return total; 
      }; 
   
   private: 
      //hidden data from outside world 
      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 是与外界的接口,用户需要了解它们才能使用该类。


D编程 重载
D编程 接口
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }