package comimport groovy.swing.SwingBuilder import java.awt.BorderLayout //声明个SwingBuilderdef swing = SwingBuilder//计数器 count = 0//声明个labeldef textlabel//声明个framedef frame = swing.frame(title:'计数器', size:[300,300]) { borderLayout textlabel = label(text:"您还未点击,Come _disibledevent= "点击了${count}次"; [阅读全文] [PDF]
Groovy试图使Java开发者使用起来尽可能自然,在设计Groovy的时候遵循这样的原则,那就是尽可能减少Groovy的突兀之处。尤其是对那些有着Java开发基础的人,他们学习Groovy,当然希望Groovy与Java不要差别过大。下面我们说说Java和Groovy之间的主要的不同之处。
缺省引入的包
所有以下的这些包和类都是缺省引入的,也就是说不需要再特意使用import语句来引入它们。
◆java.io.*
◆java.lang.*
◆java.math.BigDecimal
◆java.math.BigInteger
◆java.net.*
◆java.util.* [阅读全文] [PDF]
Expando类是Groovy语言中的一个相当有趣的类,它的作用类似于GroovyBean类,但比GroovyBean类更加灵活;同时,它还更类似于Map类,但也比Map类更加灵活。 我们先来看一个简单的例子: def e = new Expando() e.name = 'aa' println e.name e.age = 123 println e.age 运行结果为: aa 123 可以看到,e对象就像一个Map对象一样,可以任意的增加键值对,然后存储起来。也像一个动态的GroovyBean对象,它可以不用预先设定任何的属性,一切都可以在使用的时候增加。 [阅读全文] [PDF]
我们都知道,Groovy语言对集合做了很多的简化,如each、collect等等。但是,Groovy语言觉得这些还不够,它要继续给我们提供更多的简化操作。今天我们要谈到的“*.”,就是其中的一个。 “*.”操作符到底有什么用?我们还是从一个简单的例子谈起。 def list = ['abc','yyyy','1234467'] def sizes = list*.size() sizes.each{ println it } 打印的结果为: 3 4 7 通过上面的例子,我们可以知道,“*.&rdq [阅读全文] [PDF]
在Java语言编程中,对对象的非空判断是一个永恒的话题。例如,我们经常需要对一个字符串进行如下的判断: if(str!=null&&!str.equals(\"\")) { ...... } 输入这样的语句的确使人生厌,而且有时候还会忘掉输入“!str.equals(\"\")”语句中的“!”导致代码出现逻辑错误。 而敏捷的Groovy语言开发就不需要我们担心这样的问题。同样的判断语句,我们只需要输入下面的代码: defstr=null if(str) { println\"strisnotnull\" } else { println’stris [阅读全文] [PDF]
Groovy探索之Delegate模式 二 鉴于Delegate模式在现在的编程中越来越重要,Groovy语言为它提供了一个帮助类来帮助我们创建委派类,这就是DelegatingMetaClass类。使用DelegatingMetaClass类,可以使得我们更加简单的实现Delegate模式。下面就来看看DelegatingMetaClass类是如何帮助我们实现Delegate模式的。还是接着上一篇的例子来说吧。我们已经有了一个Foo类,如下:class Foo { deftest() { println'have a test' } def [阅读全文] [PDF]
对程序进行单元测试时,有时我们会遇到一些小麻烦,比如某些操作十分耗时,有些依赖的对象不易获取等等,这时我们就可以通过Groovy Mock或Groovy Stub来解决这些问题。Mock对方法调用的次数十分敏感,如果程序中调用的次数不在期望的调用次数范围内,则会抛出异常以致测试失败;而Stub仅仅是起到‘替身’的作用,它并不关心方法调用与否,即使方法一次都没被调用,也不会抛出异常导致测试失败。下面让我们来看一个实际的例子吧:import groovy.mock.interceptor.*class User { String name String address Strin [阅读全文] [PDF]
Decorate模式是Java编程中比较常用的一种模式,有关Decorate模式的基本知识,如概念、使用场合以及如何使用,请大家查看相关文档。本文所要关注如何在Groovy语言中实现Decorate模式,以及这种实现与Java语言实现的区别,使得我们更加深入的理解Groovy语言的动态性,同时学会在Groovy语言中使用Decorate模式。说到Decorate模式,一个最最常用的例子是咖啡的例子。下面我们来看看在Java语言中怎么实现这个例子的。首先是一个接口,接口是Java语言面向对象的基础:publicinterface Coffee { publicvoid de [阅读全文] [PDF]
《Groovy探索之闭包》进入到第五篇,重点来讲讲闭包和模式的关系。我们知道,在Java界,设计模式是名声在外了。由于模式有很好的扩展性,我们通常很喜欢使用它们。但在Java语言中使用模式,我们最大的抱怨就是代码臃肿;由于过于对依赖进行过多的拆分,造成类个数成倍增加。一句话,扩展性虽然好,但编码的效率却低。比如说,我们在Java中常用到的Collections.sort(Collection collection,Comparator comparator)方法,就使用到了策略模式,所谓“策略模式”,就是对算法的封装。而Collections.sort(Collection collectio [阅读全文] [PDF]
1 共9条 分1页
- 单片机数码管:51单片机数码管显示的好帮手---MAX...
- 点阵显示屏:智能点阵显示屏HCMS-29xx/39xx及其应用
- 单片机教程:单片机编程入门七
- 汇编语言指令集:IBM-PC汇编语言指令集
- 数据传送指令:MCS-51数据传送指令
- 0083智能工社:浅谈足球游戏的人工智能
- 提拔将领:即时战略游戏将领指挥AI方案设想
- directinput:DirectInput 鼠标编程入门
- 实现爆炸后的振动效果
- 飞机射击类小游戏:有关飞机射击类游戏的设计原理
- 音效最好的播放器:游戏音乐和音效的播放
- 游戏调试:利用双计算机调试游戏程序
- 多任务处理:游戏中的多任务处理
- 电脑游戏中的人工智能制作
- 系统升级:角色扮演游戏的升级系统研究
- rpg游戏制作:深入RPG游戏制作—图形篇
- directdraw:通向DirectDraw的捷径
- 3d场景:如何在3D场景中加入Fog
- 游戏搜索:论游戏中的搜索问题(初级篇)
- directx如何使用:使用DirectX优化声音特性