Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1092963
  • 博文数量: 104
  • 博客积分: 3715
  • 博客等级: 中校
  • 技术积分: 1868
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-30 08:38
文章分类

全部博文(104)

文章存档

2013年(1)

2012年(9)

2011年(41)

2010年(3)

2009年(3)

2008年(47)

分类: Java

2011-04-04 18:05:25

    zlang数据模型中,最核心的两个概念是对象和类。在zlang中,所有的东西都是一个
对象(包括代码),每个对象都有自己的类型,即它所属的类。zlang中没有变量,一个名
字一旦绑定一个对象后,就不会再变。

* id
    每个对象,在被创建后,就被赋予唯一的、不变的id,类似这个对象的身份证号码,
在这个对象存在期间不变,并且也不会有其它对象的id与这个对象的id相同。在这个对象
销毁后,id有可能被重用。注意,上面的id仅仅在一个进程中有效,不同进程中的不同对
象可能有相同的id,id可以理解为该对象的内存地址。
    可以使用`is'操作符比较两个名字,以判断这两个名字是否绑定到同一个对象。

* 引用/绑定
    一个对象可以有若干个名字或者说引用。但一个名字绑定到一个对象后就不能被重新
绑定。

* gc
    zlang中有的对象都是被自动垃圾收集的。

* 类型
    每个对象都有所属的类型(类型也是一个对象),通过对象的type()方法可以得到该
对象的类型对象的引用。

* mutable/immutable
    zlang中所有的对象都是immutable的。
// 经过考虑,暂时不引入mutable的对象,如果“真的”需要,以后再考虑引入。
    每个对象都可以包含一些值,如果一个对象包含的值可以改变,那么这个对象被称为
可变的(mutable),否则,这个对象被称为不可变的(immutable)。类的mutability
是不能被继承的。如果对象包含的每个字段都不可变,则称该对象是immutable的,否则
是mutable的。(注:如果对象的一个字段是绑定到另一个对象的名字,那么,只要这个
绑定关系不变,这个字段就是不可变的,而不管它指向的对象的可变性。)
// end of mutable对象

* 核心类型及其层次结构
    本部分讨论zlang内置的核心类型及它们构成的层次结构。程序员可以自定义类型,
程序员自定义类型与核心类型有着同等的地位。

** Object
    该类型是所有类的父类,所有的类型都直接或者间接地继承子Object类。

*** Object类的特殊方法
**** (To be continue)

** None
    该类型是所有类型的子类,默认继承了所有的类型(包括那些自定义的),该类型只
有一个对象实例:none。一般使用该类型代表空,类似于Java中的null。

** Boolean(Object)
    该类型是布尔类型,有两个对象实例,true和false。

** Integer(Object)
    整数类型。

** Real(Object)
    浮点数类型。

** Sequence(Object, abstract)
    序列类型。

** Character(Object)
    字符类型,代表一个单独的字符,通常不直接使用。

** String(Sequence)
    字符串类型。

// 不再支持StringBuffer
** StringBuffer(Sequence, mutable)
    可变字符串类型。
// end of 不再支持StringBuffer

** Byte
    字节类型,代表一个字节,通常不直接使用。

** Bytes(Sequence)
    字节序列类型。

// 不再支持BytesBuffer
** BytesBuffer(Sequence, mutable)
    可变字节序列类型。
// end of 不再支持BytesBuffer

** List(Sequence)
    列表。

** Tuple(Object)
    元组。

** Set(Object, abstract)
    集合。

** HashSet(Set)
    hash集合。

** Map(Object, abstract)
    关联数组。

** HashMap(Map)
    hash关联数组。

** Callable(Object, abstract)
    可调用对象类。

** Type(Object)
    类型类。

** Error(Object)
    异常类。


==============================================================================
Data Model
Author: Liang Kun
Date: 2011-04-04
Last Change: 2011-04-06

阅读(1457) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~