现在的位置: 首页 > 综合 > 正文

ACDK指南-ACDK 基础

2018年04月03日 ⁄ 综合 ⁄ 共 1366字 ⁄ 字号 评论关闭

ACDK指南-ACDK 基础

翻译:薛长宇

我们现在将向你介绍ACDK基础.

本章内容:
         建立对象
         访问方法
         存取字段
         释放对象
         复制引用
         复制实例
         参数和返回值

建立对象
使用'new'建立一个新对象.
保存这个新对象到一个引用中.
一个指向一个对象的引用的类型是R+类的名字,例如StringBuffer的引用的类型是RStringBuffer.

{
  RStringBuffer sb = new StringBuffer();
}



访问方法
与Java不同, 对于静态或者动态的方法访问方式是不同的.

{
  RStringBuffer sb = new StringBuffer();
  sb->append("Hi"); // non static call
  RString str = String::valueOf(3.4); // static call
}

 

存取字段
一般情况下,访问类的字段不通过set/get方法的封装直接访问不是一个好主意.

释放对象
对象被释放. 如果最后的指向这个对象的引用消失,他们将自动地被释放。
作为一种选择,你也可以直接赋Nil值给这个引用:

{
  RStringBuffer sb1 = new StringBuffer("M");
  sb1->append("JA");
  sb1 = Nil;
  // sb1 不再保存StringBuffer, StringBuffer 将被移除
}

 

 

复制引用
如果你想复制引用,你可以很容易地这样做:

{
  RStringBuffer sb1 = new StringBuffer("M");
  RStringBuffer sb2 = sb1; // sb2 将含有相同的StringBuffer的实例
  sb2->append("A");
  sb1->append("JA"); // StringBuffer 因为的内容是 "MAJA” (原文写的时“ACDK”,但我认为是作者的笔误)
}

 
参看:引用.


复制实例
在ACDK中,可以复制一个实例(不仅仅是引用)
{
  RStringBuffer sb1 = new StringBuffer("M");
  RStringBuffer sb2 = sb1->clone(); // sb2 包含一个复制品
  sb2->append("A");
  sb1->append("JA");
  // sb2 的内容 "MA"
  // sb1 的内容 "AJA"
}

 


 参数和返回值
默认情况,仅仅引用可以被作为方法的参数或者返回值。
类似于Java中的规则.

RInteger myParse(RStringBuffer arg)
{
  RString str = arg->toString();
  RInteger erg = Integer::parseInt(str);
  return erg;
}

// 相同的, 但是更加'inlined'的版本
RInteger myParse(RStringBuffer arg)
{
  return Integer::parseInt(arg->toString());

 

这是我随意翻译的一篇文章,介绍分布式framework ACDK。这是一个国外很多人在用,但是国内却没有介绍的项目。希望大家能喜欢,因为很随意,所以没有对文中的内容翻译进行校对,因此难免很多缺憾,请大家原谅

翻译:薛长宇
2004-12

抱歉!评论已关闭.