您的位置:首页 > 其它

每天学一点flash(62) 类分类

2009-11-26 17:50 190 查看
这个是今天想到一个问题,类的分类是如何的呢?在编程过程中,笔者感觉到类其实也可以分为很多种结构。下面我把大概遇到过的情况,记录一下。



首先,让我们先了解“对象和类”这个概念:



对象--是包含数据和操作的实体,它既定义数据元素,又定义可应用这些数据元素的操作。
类--是对一组具有相同属性和行为的对象的描述,类的内容称为类的成员。


从这里概念可以看出,对象里面包含了数据和操作,换一个说话就是属性和方法。而从集合的观点来看,对象包含了属性和方法

通过类可以创建对象。我们可以先以“类里面包含对象,对象包含了属性和方法”是一条真命题,展开今天的话题。



直接简单推出类包含了属性和方法。








问题:是不是所有的类都有属性?是不是所有的类都有方法?

这个问题提法有点不正确,构造方法,都是属于方法一种。在这里我们先排除构造方法存在。接下来,我们继续我们的问题,是不是所有的类都有属性呢?

下面,我简单写一类。

class man
  {
    public  function  man()
     {
    } 
     public function say(msg:String):String
    {
       return msg;
    }
 }


因此,我们这个问题是否定,也就是说。类里面可以不包含属性。



接下来,是不是所有的类都会有方法呢?

class man
  {
    public  function  man()
    {
    } 
     public var height:Number;
  }




从这个类,我们可以否定我们的问题,不一定。所有的类不一定包含方法(注意:除构造方法,之前说明过的条件)。



总述两个问题答案:我们可以得到一些简单推导结果推论:



1.某一些类里面,只是包含属性,姑且称为独属性类;

2.某一些类里面,只是包含方法,姑且称为独方法类;

3.某一些类里面既包含方法,也包含了属性,姑且称为正常类;





有了这些推论之后,我们可以展开对类内部结构展开联想。首先第一种,类里面只是包含属性,看看下面的例子,只是罗列一组常量的静态属性 ,并没有写出其他方法



package 
{
	//Orientation3D 类是用于表示 Matrix3D 对象的方向样式的常量值枚举。
	//方向的三个类型分别为欧拉角、轴角和四元数。
	//Matrix3D 对象的 decompose 和 recompose 方法采用其中的某一个枚举类型来标识矩阵的旋转组件。 
	public final class Orientation3D
	{
		//[静态] 轴角方向结合使用轴和角度来确定方向。
		public static  const AXIS_ANGLE:String="axisAngle";
		
		//静态] 欧拉角(decompose() 和 recompose() 方法的默认方向)通过三个不同的对应于每个轴的旋转角来定义方向。
		public static  const EULER_ANGLES:String="eulerAngles";
		
		//[静态] 四元数方向使用复数。
		public static  const QUATERNION:String="quaternion";
	}
}






这里类的特点就是封装了对象的属性,没有其他方法。(另外一个个人观点,可以把这种类命名为枚举类)



第二种类结构:独方法类;

class man
  {
    public  function  man()
     {
    } 
     public function say(msg:String):String
     {return msg;}   
     public function eat():void{trace("吃东西");}   
 }




这里只是封装了一组方法,AS3 常见做法就是Math类,这个就是一个典型代表。





第三种:我们就不用解析了。它既包含属性和方法类--正常类;





这三种的结构,可以从集合的角度进行说明。从类另外一些角度,还有其他一些很有趣的类分类。



那就是不能被继承的final 类(姑且起个名字叫孤单类):

可以动态添加属性的 动态类:

还有静态类(比较斯文的类,个人观点)



等等。





以上,是个人一些观点,并一定完全适合所有的人,只是个人一些想法和推导。下面列出一部分个人观点和看法,只是对这些结构作为一种分类;



独属性类--只是包含属性的集合的类结构体

独方法类-只是包含方法的集合的类结构体

正常类--包含属性和方法的集合类结构体

final类--不能被继承的一种类

动态类--可以动态添加属性的类

枚举类--一组有限属性的结合的类的结构体,是独属性类一种小分类



还有其他的类中类,包含其他类的类结构体。

等等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: