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