1.13. 创建可重用代码
问题
我要实现代码重用,而不是每次都去复制同样的代码。
解决办法
创建一个方法,然后再需要的地方调用它,类中的函数 我们通常称为方法。
怎样创建类方法:
控制修饰符 function 方法名 ( ):返回数据类型 {
// 代码块
}
调用该方法只要饮用方法名就可以了,比如:
方法名( );
讨论
方法中的代码可以被多次执行。当你需要在不同的时间不同的地方执行同一个任务时就会很有用。把代码放在方法既便于理解又便于维护,而不用再多个地方修改。
像类变量一样,方法也有访问控制符。修饰符有:
private
只能被自身类访问。
protected
能被自身类实例或子类实例访问,其他类实例不能访问。
internal
可以被所在包中的所有类实例访问。
public
可被任何类访问。
如果都没指定修饰符,默认为internal。下面的代码定义了一个画线方法,然后被调用10次。
import flash.display.Sprite;
public class ExampleApplication extends Sprite
...{
public function ExampleApplication( ) ...{
for(var i:int=0;i<10;i++) ...{
drawLine( );
}
}
private function drawLine( ):void ...{
graphics.lineStyle(1, Math.random( ) * 0xffffff, 1);
graphics.moveTo(Math.random( ) * 400, Math.random( ) * 400);
graphics.lineTo(Math.random( ) * 400, Math.random( ) * 400);
}
}
}
还有种种要的方法类型是静态方法,静态方法不属于类实例,可以通过类直接调用静态方法。比如,有个类叫ExampleApplication, 定义了静态方法:
public static function showMessage( ):void {
trace("Hello world");
}
可以这样调用:
ExampleApplication.showMessage( );
有些类只有静态方法,Math类就是个例子,注意我们使用Math方法时并没有创建类实例,我们只是调用了类属性那样调用类方法,比如Math.random( ), Math.round( ), 等等