一种新的面向对象语言――Other语言(暂定名)
一种新的面向对象语言――Other语言(暂定名)
我对现有计算机语言不太满足,正构思一种新的语言――Other语言。请大家看看这语言怎样:
Other语言是一种绝对面向对象的语言,一切都是对象。这种语言的一些特性,是别的语言没有的,现阐述如下:
一,面向对象的特点
1,对象和类的关系
在Other语言里,可以以类定义对象,也可以以对象来定义类。
为什么是这样呢,是因为在Other语言里,类中的属性和方法,只是在该类的对象中暂时寄居,而不是永久性的是该类的对象的成员。
当对象从初始类生成完毕后,在对象与其他类的对象相互作用中,该对象的属性和方法,可以被“赠予”或“拷贝”给其他类的对象,或
者干脆可以被自身对象所取消。
如此一来,经过一段时间运行后,对象里的属性和方法也许就不是原来的那些属性和方法了,可能被赠予或拷贝了新的属性和方法,那么
,该对象也就代表了一个新的类的诞生。想要固定下这个对象的改变,就用该对象定义一个新的类就行了。这个新的类又可以初始化新的对象
。
类中的属性也是某一类的对象,也可以做以上改变。
2,一切都是对象
在Other语言里,一切都是对象,甚至包括你在面板上的涂鸦,也是对象。这就可以有一种很好的相互作用方式,作用于任何对象上,令它
们变化。
在Other语言里,几个对象可以组合成一个新的对象,新的对象也可以拆解成几个不同的对象,任你快乐地做出想做的改变。
Other语言中,类里的方法也是一种特殊的对象,只不过是没有属性的对象而已。
3,面向对象三大特性在Other语言中的表现:
(1)继承的特点
继承可以从一个类继承,也可以从一个对象继承,因为对象已经表征了一个新的类了。当然,继承的特点没有变,继承了该类(或对象)
的属性和方法。
(2)封装的特点
对封装的改变是Other语言的一大特色,该类对象对类的属性和方法可以有处置权,可以动态设置其私有和公有属性,甚至可以将该属性和
方法增予其他对象,或者干脆就去掉。也可以接受别的对象对其的属性和方法的增予。
这其实在生活中是很常见的,比如一辆汽车,它的各种零件都可以拆卸掉,而且可以被改装。在程序运行中,就可以实现一个面板上的按
钮可以被原封不动地自己挪到另一个面板上,功能不发生变化等。
(3)多态的特点
多态有三种含义,函数重载,基类和派生类虚函数。Other语言中的多态,允许函数重载,不允许操作符重载,并可以定义虚函数。但还有
以下特色:
在传统的面向对象的程序里,基类指针可以调用派生类方法的构造,是用基类管理派生类的对象的一种方式。
在Other语言里,多态是基于对象的,一个对象可以被赋予调用另一个对象方法的权限,也可以有赠予另一个对象方法的权限,当然这种权
限需要有授权才行。
在多个同类对象中,可以指定某对象是管理者,这样该对象就可以调用其他对象的方法了。
二,对象之间用“语言”交流
在Other语言里,Other语言只是一个“元语言”,每一个对象(类)都可以有自己的语言集。这就是说,某一个对象内部的方法里用java
语言,另一个对象内部的方法里用asp语言,也是可以的。两个对象间如果想交流信息,它们必须有共同语言。
为什么要这样做,我解释一下。
首先,如今的系统已经非常复杂,一个软件系统里,采用不同语言做事情,本身就是很平常的事情。如一个网页里可能同时采用java语言
,html语言,javascript语言等等。这要看每个对象作的事情是什么而采取不同语言.
元语言也是采用不同语言的不同对象交流的纽带.
又例如在一个大型游戏中,有一个机器人在行走,一架飞机在飞,那么它们两个所涉及的方面不同,采用的语言以及关键字等也不一定一样.总
之要更好地描述对象的性状和行为,需要在语言上有不同.
对象之间交流信息是通过语言.就象人与人之间,通过相互说话共同完成事情一样.
这样做的好处有:
1,对象之间可以做非常复杂的交互,因为是用语言进行沟通的,所以代码可以很灵活.所以,对象间交换信息越复杂,用这种方案就越显示出优
越性.
2,语言的检查是很严格的,这里是编译系统级别的检查错误.必须检查词是否是关键字,词法是否正确,语法树是否正确等等,这样,就把很多
输入输出上出错的几率大大降低.从语法结构上就避免出错.我们就不用那么多if else等来判断错误了.输入输出,是出错最多的地方,这就使我
们的系统具有先天的健康性.
3,对象的方法其实也是语言,这就有了对象之间互相传递方法的可能性,为灵活的组装对象功能打下基础.
4,你甚至可以为某一特殊功能创造一个新语言,比如,为你的某一特殊应用度身订做一种语言.
5,可以通过这种方法,吸收各种其他语言的精华代码.
先写到这,以后慢慢再写.请各位多指教!
keystonexu1@163.com