Nice用户手册(二)


本手册描述了Nice编程语言。它目前正在修订之中,这意味着这门语言在许多方面还不完整,或有些部分基本上还是空白。在此期间,建议同时阅读《Nice Tutorial》[http://nice.sf.net/language.html],该书包括了许多额外信息。阅读这两篇文档需要一些Java的知识,或至少了解一种面向对象语言。

本手册的作者是Daniel Bonniot和Bryn Keller,Francis Barber也参与其中。

 

第一章 基本原理
A language that doesn't affect the way you think about programming, is not worth knowing.

—Alan J. Perlis

The art of progress is to preserve order amid change and to preserve change amid order.

—Alfred North Whitehead

 

Nice语言是一门新的基于Java的面向对象语言。它从函数型语言借鉴了一些特性,并艺术性地将学院派的研究成果付诸实践。而这些特性使它有更好的表达力(expressivity)、模块化结构(modularity)和安全性(safety)。

安全性

Nice在编译时能够比现有的面向对象语言检查出更多的错误(空指针访问(null pointer accesses),类型转换异常(cast exceptions))。这意味着使用Nice编写的程序将不再抛出声名狼藉的NullPointerException和ClassCastException。这方面的详细信息可参阅http://nice.sf.net/safety.html。

模块化结构

在面向对象语言中,能够向已存在的类继承结构中加入一个新类。在Nice中,还可以在不修改源文件的情况下向已有类添加新方法,而这是多元方法(multi-methods)的一种特殊情况。

表达力

使用Nice的高级特性可以避免许多重复的编程任务。你是否曾经厌恶过编写成堆的循环、类型转换、使用默认值的重载方法……?

 

第二章 包
包是一组相关联的类、方法和变量。你可以用下面的语句在一个.nice文件中声明一个包下所有的代码:

package package-name;

可以使用import语句将另一个包中的所有公有元素导入:

import package-name;

请注意这一点与Java稍微有些区别。在Java中可以独立地导入一个包中的类。在Nice中方法可以在类之外声明,所以必须导入整个包以确定一个类中的可用方法。这点意味着Nice项目必须以比Java更小的、完整的包进行设计。

如上所述,只有整个包能被导入,而单个类却不行。同样,在包名后不需要像Java中那样使用.*。事实上,使用.*说明你是想导入一个Java包而不是Nice包。详情请参阅“与Java交互”一部分。
main方法
在包中包含了一个方法,它的名字为main,返回值是void,并接受一个String[]类型的参数。这个方法很特殊,它所在的程序将由这个main方法开始执行。运行时系统将把命令行参数传给main方法。

请注意,由于Nice中主要的代码单元是包而不是类,因此main方法必须在任何类以外实现。

时间: 2024-08-03 14:42:19

Nice用户手册(二)的相关文章

Red Flag inMini 2009用户手册:系统与桌面设置(二)

4.4个人 1.1.34 关于我自己 关于我自己,记录了http://www.aliyun.com/zixun/aggregation/18675.html">用户基础信息.在高级用户设置中单击"关于我自己"图标,将打开如下图所示的关于我自己窗口.在此可以进行密码和用户信息.路径等设置. 1.34.1密码和用户信息 密码和用户信息记录了像密码.姓名和电子邮件这样的基本用户信息.在关于我自己设置中单击"密码和用户信息"图标,将打开如下图所示的密码和用户

选择邮件服务器十二要素(5)

服务器|邮件服务器 邮件服务器是一个通过网络为多用户服务的软件系统,开发厂商不但根据所满足业务量的不同,推出类型不同的版本,还随着网络技术的进步不断发布产品的升级版本. 1)版本 邮件服务器的不同类型版本,主要针对不同业务量的应用.如果按照所支持的用户数量分类,可以分为限用户数版本和不限用户数版本,前者往往又分为几个档次.如果 按照系统运行性能区分,常分为标准版本(Standard Edition)和企业版本(Enterprise Edition),前者适用于中小规模机构, 后者适用于大型机构或

使用 CodeIgniter 框架快速开发 PHP 应用(二)

原文:使用 CodeIgniter 框架快速开发 PHP 应用(二)二分钟: 建立一个 CodeIgniter 网站 用CI建一个网站很容易. 这一章很短,解释了用CI制作网站时发生了些什么,哪些文件被创建,让我们来瞧一瞧: . 创建网站需要什么软件? . 安装 CI 文件: 一个简单的下载和解压缩操作 . CI 的基本设置: 有哪些文件夹及它们是如何组织的 . CI 安装时默认的控制器和视图 . 一些简单的修改来演示CI如何运作 准备知识 CodeIgniter 有较好的版本兼容性. 它工作在

ps怎么把二维码设置为透明背景?

  ps怎么把二维码设置为透明背景?微信二维码在下载之后的图片是带有一个白色背景的,我们在设计图稿时,二维码带有一个白色背景非常的不方便,我们应该怎么把白色的背景去掉呢?下面我用ps简单介绍一下去掉二维码白色背景的方法. 1.首先打开photosop,新建一个透明图层,文件>新建,新建时,背景色选择透明色. 2.在这个文档中打开我们要变为透明背景的二维码,打开之后如下图所示.(二维码为自己生成,不存在广告信息) 3.然后在右侧选择图层样板,选择图层旁边的通道. 4.通道种我们会看到有rgb 红

网页动画的十二原则

  作为前端的设计师和工程师,我们用 CSS 去做样式.定位并创建出好看的网站.我们经常用 CSS 去添加页面的运动过渡效果甚至动画,但我们经常做的东西不会超过这些. 动效是一个有助于访客和消费者理解我们设计的强有力工具.这里有些原则能最大限度地应用在我们的工作中. 迪士尼经过基础工作练习的长时间累积,在 1981 年出版的 The Illusion of Life: Disney Animation 一书中发表了动画的十二个原则 (12 Principles of Animation) .这些

微信扫描二维码登录网站代码

 用户通过扫描网页提供的二维码实现登陆信息获取,大家参考使用吧 请先下载  snoopy 类   代码如下: <?php /**  *  微信公众平台PHP-SDK  *  Wechatauth为非官方微信登陆API  *  用户通过扫描网页提供的二维码实现登陆信息获取  *  主要实现如下功能:  *  get_login_code() 获取登陆授权码, 通过授权码才能获取二维码  *  get_code_image($code='') 将上面获取的授权码转换为图片二维码  *  verify

Swift语法专题十二——方法

Swift讲解专题十二--方法 一.引言         方法只是一个术语,其实就是将函数与特定的类型结合,类.结构体.枚举都可以定义方法,方法又分为实例方法和类型方法,类型方法类似于Objective-C中的类方法.Swift和Objective-C的一大不同是,Objective-C只有在类中可以定义方法. 二.实例方法基础         实例方法的语法和函数完全一致,其和具体类型的实例所关联,实例方法在调用时由类型的实例点语法进行调用来完成一些功能模块.示例如下: class Math

关于PHP的前途(二)

3.2在Windows 95/98/NT/2000上快速安装Apache Web服务器(10秒钟) 在Windows上运行PHP,你需要一个Web服务器,你可以使用微软的IIS,也可以使用免费的Apache .因为可以通过Apache的安装文件setup.exe进行安装,可以为你节省许多时间. PHPTtriad是一个包括Apache.PHP.MySQL的软件包,可从http://www.phpgeek.com/phptriad.php 或其镜像站点http://sourceforge.net/

源代码-我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能。

问题描述 我在学习Android 的ZXing开源项目二维码时 有几个类 不清楚他具体的意义,功能. ①BitMatrix.java ②ByteMatrix.java ③MultiFormatWriter.java ④QRCodeWriter.java 这4个 我实在不懂 这功能,这里面哪个 是将输入字符串 变成那个0,1 那个的?用什么算法了...我这是Android工程. 谢谢了...