接着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:
public class MyClass...{
public const PI:Number = 3.1415926;
public var r:Number;
private var s:Number;
public function MyClass()...{
trace("这个我写的第一个类");
}
}
}
这里我们在以前的基础上增加了几句代码,const是定义常量,var是定义变量,所谓的常量就是永远不能改变的量,变量就是能够改变的量;public、private是属性关键字,在AS3中属性关键字有这样几个:
public:指定类、变量、常量或方法可用于任何调用者
private:指定变量、常量或方法仅可供声明或定义它的类使用
protected:指定变量、常量、方法或命名空间只可用于定义它的类及该类的任何子类
internal:指定类、变量、常量或函数可用于同一包中的任何调用者
这里我们先重点看一下public、private这两个属性关键字,从字面上理解public是公共的意思,说简单点就是任何地方都可以调用,private是私有的意思,就是说只有这个类中才可以调用,我们用一个例子做一个简单的说明,还是在上一节中我们用的FLA文件中的第一帧加上这个的代码:
var myClass:MyClass = new MyClass();
myClass.r = 3 ; // 正确
myClss.s = 18 ; // 错误
可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:
public class MyClass...{
public const PI:Number = 3.1415926;
public var r:Number;
private var s:Number;
public function MyClass()...{
trace("这个我写的第一个类");
}
public function setSValue(value:Number):void...{
s = value;
}
}
}
这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:
myClass.setSValue(18);
就可以了,当然跟其它语言一样,我们也可以用get和set方法来读取或写入private变量的值:
public class MyClass...{
public const PI:Number = 3.1415926;
public var r:Number;
private var s:Number;
public function MyClass()...{
trace("这个我写的第一个类");
}
public function set sValue(value:Number):void...{
s = value;
}
public function get sValue():Number...{
return s;
}
}
}
我们在调用的时候就可以用这样的语句了:
myClass.sValue =18;(当使用过set后可以这样操作)
var a = myClass.sValue;(当使用过get后可以这样操作)
下节继续!
(本教程如需转载请注明出处!)