学学习网 手机版

学学习网

学习路径: 学习首页 > 应用开发 > AS3 >

第一节 AS3从零基础学习类(2)

设置字体:
----------------------------------

          public function MyClass(){
               trace("这是写的第一个类");
          }
          public function setSValue(value:Number):void{
               s = value;
          }
      }
}  
这样通过一个公共方法(就是函数)设置了s的值,可以在FLA文件中调用:
myClass.setSValue(18);
 
当然跟其它语言一样,也可以用get和set方法来读取或写入private变量的值:
package net.smilecn{
      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后可以这样操作)
 
 

继承

继承是指一种代码重用的形式,允许程序员基于现有类开发新类。现有类通常称为“基类”或“超类”,新类通常称为“子类”。首先看一段代码:
package net.smilecn{
      import net.smilecn.MyClass;//类在使用之前要先导入
      public class MySubClass extends MyClass{
            public function MySubClass(){ 
                 trace("Pi:",PI);//正确
                 trace("r:",r);//正确
                 trace("s:",s);//错误
            }
      }
}
 
发现这个类比之前写的类多了“extends”这个一个关键字。这个关键字的作用就是说明,MySubClass类是继承MyClass类的,继承之后就可以使用MyClass这个类里的变量和方法了,这样就达到代码重用的目的。例如,现在要写关于若干个球的类,有足球、篮球、排球等,那么可以先找出这些的共性,先写一个球的类,然后再继承这个球的类写出若干个球的类。由于相同的东西写在球的类中了,这就达到了代码重用。
可以看出,PI,r,s是在MyClass这个类中定义的变量,那么由于MySubClass继承了MyClass,所以MySubClass也能使用这些变量。但值得注意的是,public和protected可以在子类中使用,而private则不行。所以这里PI和r可以使用,s不能用,并且子类在构造的时候也会执行基类的构造方法。改一下FLA文件的代码:
import net.smilecn.MySubClass; 
var mySubClass:MySubClass = new MySubClass();
mySubClass.r = 3;
 
在输出面板会输出:
这是写的第一个类
PI:3.1415926
r:NaN
注意:标有错误的那句代码要去掉,不然会报错。
----------------------------------
  • 学学习
  • 需帮助 请留言
课程列表
重点难点
赞助链接