类的属性,函数,以及包的概念-ActionScript3菜鸟教程

By:arrowyoung Date:2009-12-01

    接着上一节的内容,上一节中我们建了一个简单的类,讲解了包的概念,构造函数的概念,接下来再看看成员常、变量和成员函数的概念,再来看一段代码:

package net.smilecn{
    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文件中的第一帧加上这个的代码:

import net.smilecn.MyClass;
var myClass:MyClass = new MyClass();
myClass.r = 3;//正确
myClss.s = 18;//错误

    可以看到因为r声明为public,所以我们在外部调用是正确的,s声明为private,所以不直接在外部访问s这个变量,这就是public和private的区别,那我们要在外部改变s的值应该怎么做呢,我们可以这样做,在来修改MyClass类:

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 setSValue(value:Number):void{
            s = value;
        }
    }  
}

    这样我们通过一个公共方法(方法就是函数的意思)设置了s的值,在FLA文件中这样调用:

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后可以这样操作)

参与讨论去: 艾睿(Airia) 交朋友去:友吧推荐文章去:网站贴吧
企业招聘

北京中视力天文化传媒有限公司

公司简介:北京中视力天文化传媒有限公司,是CCTV.com央视国际网络有限公司投资的互联网研发团队。我们是天使的使者。。。

招聘FlashAS程序员详情点击

Copyright 2007-2008 51AS.com Extended in kingcms 鲁ICP备06001158号