class classname
{
// 定义成员变量,成员函数和成员属性
function classname() // 构造函数
{
}
function finalize() // 这个相当于析构函数
{
}
}
例:
class test
{
function test()
{
// 构造函数
// 在这里填写对象创建时需要处理的内容。
variable = 0;
}
function finalize()
{
// finalize 方法
// 在这里填写对象销毁时需要处理的内容。
}
function method1()
{
// 方法
System.inform(variable);
}
var variable; // 成员变量
property prop // 成员属性
{
getter() { return variable; }
}
}
例:
class Test
{
var variable1 = getValue(); // 成员变量的初始化
function Test(arg1, arg2) // 构造函数
{
// 使用 new 运算符创建对象时指定的参数会被传到 arg1 和 arg2 这两个变量里
}
}
var newobject = new Test(1, 2); // 把 1 和 2 作为参数传入,创建 test 类的对象
例:
class Test
{
function Test() // 构造函数
{
}
function func()
{
return new Test(); // 错误
}
}
例:
class Test
{
function Test() // 构造函数
{
}
function func()
{
return new global.Test(); // 这样写就OK了
}
}
例:
class Test
{
var variable;
function Test()
{
// 构造函数
variable = new AnotherClass();
}
function finalize()
{
// finalize 方法会在对象被无效化的时候会调用
invalidate variable;
}
}
var object = new Test(); // 对象的创建
(略)
invalidate object; // 对象的无效化
例:
var obj = new FooBarClass(); // 创建对象
obj.method(); // 用常规手段调用对象的方法
var objmethod = obj.method; // 把指向对象中方法的引用代入到 objmethod 变量
objmethod(); // 调用 objmethod 和调用 obj.method() 一样,都是对 obj 这个对象的操作
例:
(objmethod incontextof obj2)(); // 对 obj2 进行操作
(objmethod incontextof this)(); // 对 this 进行操作
例:
class Class1 // 超类
{
function Class1() // Class1 的构造函数
{
}
function finalize() // Class1 finalize
{
}
function method1() // method1
{
}
}
class Class2 extends Class1
{
function Class2() // Class2 构造函数
{
super.Class1(); // 调用 Class1 的构造函数
}
function finalize() // Class2 finalize
{
super.finalize();
}
}
var obj = new Class2(); // 创建 Class2 的对象
obj.method1(); // Class2 调用了从 Class1 中继承的 method1 方法
例:
class SubClass extends ClassA, ClassB
{
function SubClass() // SubClass 构造函数
{
ClassA(); // 调用 ClassA 的构造函数
ClassB(); // 调用 ClassB 的构造函数
}
function finalize() // Class2 finalize
{
global.ClassA.finalize();
global.ClassB.finalize();
}
}
例:
class Class1 // 超类
{
function Class1() // Class1 构造函数
{
}
function finalize() // Class1 finalize
{
}
function method1() // method1
{
(略)
}
}
class Class2 extends Class1
{
function Class2() // Class2 构造函数
{
super.Class1(); // 调用 Class1 的构造函数
}
function finalize() // Class2 finalize
{
super.finalize();
}
function method1() // 隐藏 Class1.method1
{
(略)
if(略) return super.method1();
(略)
}
}
var obj = new Class2(); // 创建 Class2 对象
obj.method1(); // 调用 Class2 的 method1 方法