1、类<o:p></o:p>
(1)类<o:p></o:p>
l Groovy的类定义和Java类似<o:p></o:p>
Ø 方法可以基于类(static)或实例<o:p></o:p>
Ø 可以为public、protected或private<o:p></o:p>
Ø 支持常用的Java修饰符,如synchronized<o:p></o:p>
l Groovy的不同地方:缺省是public<o:p></o:p>
l Groovy支持JavaBean机制:GroovyBean<o:p></o:p>
l 每个Groovy类都是字节码/JVM级的Java类,任何方法对Java都是有效的,反之亦然<o:p></o:p>
l 你可以指定方法的参数类型和返回类型,这样可以在通常的Java代码中更好的工作<o:p></o:p>
l 你可以用上面的方式来实现接口或重载方法<o:p></o:p>
l 如果省略方法的类型,就会使用缺省的java.lang.Object<o:p></o:p>
(2)脚本<o:p></o:p>
l Groovy支持纯脚本,而不需要声明类,如Foo.groovy包含下面的脚本:<o:p></o:p>
println "Nice cheese Gromit!"<o:p></o:p>
l 运行脚本的过程:<o:p></o:p>
Ø 编译成Foo.class(还会有一些内类),该类扩展groovy.lang.Script<o:p></o:p>
Ø 执行自动生成的main方法<o:p></o:p>
Ø 实例化Foo类<o:p></o:p>
Ø 调用run方法执行脚本内容<o:p></o:p>
l 可以在Java代码中执行脚本,同时还可以传递变量值到脚本中<o:p></o:p>
l Foo.groovy内容修改如下<o:p></o:p>
println "Nice ${cheese} Gromit!"<o:p></o:p>
l 下面是执行脚本的UseFoo类<o:p></o:p>
import groovy.lang.Binding;<o:p></o:p>
import groovy.lang.Script;<o:p></o:p>
<o:p></o:p>
public class UseFoo {<o:p></o:p>
public static void main(String[] args) {<o:p></o:p>
Binding binding = new Binding();<o:p></o:p>
binding.setVariable("cheese", "Cheddar");<o:p></o:p>
<o:p></o:p>
Script foo = new Foo(binding);<o:p></o:p>
foo.run();<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
l UseFoo运行的结果是:Nice Cheddar Gromit!<o:p></o:p>
l 执行脚本的方法是创建Foo类实例,调用其run方法<o:p></o:p>
l Foo类有一个带Binding参数的构造函数,可以通过Binding类的setVariable方法设置值给脚本中的属性变量<o:p></o:p>
l Foo类有一个不带参数的构造函数,在不传递属性变量值时使用<o:p></o:p>
l 在脚本结束后,脚本中创建的任何变量都会在Binding中,以供在Java中访问<o:p></o:p>
l 再将Foo.groovy内容修改如下<o:p></o:p>
println "Nice ${cheese} Gromit!"<o:p></o:p>
cheese = "changed"<o:p></o:p>
l UseFoo类修改为:<o:p></o:p>
import groovy.lang.Binding;<o:p></o:p>
import groovy.lang.Script;<o:p></o:p>
<o:p></o:p>
public class UseFoo {<o:p></o:p>
public static void main(String[] args) {<o:p></o:p>
Binding binding = new Binding();<o:p></o:p>
binding.setVariable("cheese", "Cheddar");<o:p></o:p>
<o:p></o:p>
Script foo = new Foo(binding);<o:p></o:p>
foo.run();<o:p></o:p>
println binding.getVariable("cheese");<o:p></o:p>
}<o:p></o:p>
}<o:p></o:p>
l UseFoo运行的结果是:<o:p></o:p>
Nice Cheddar Gromit!<o:p></o:p>
changed<o:p></o:p>
(3)脚本中的函数<o:p></o:p>
l 不同于基于Class的Groovy,纯脚本中的函数用def关键字声明<o:p></o:p>
def foo(list, value) {<o:p></o:p>
println "Calling function foo() with param ${value}"<o:p></o:p>
list << value<o:p></o:p>
}<o:p></o:p>
<o:p></o:p>
x = []<o:p></o:p>
foo(x, 1)<o:p></o:p>
foo(x, 2)<o:p></o:p>
assert x == [1, 2]<o:p></o:p>
<o:p></o:p>
println "Creating list ${x}"<o:p></o:p>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=106613
相关推荐
### Groovy用户指南知识点解析 #### 一、Groovy与Java类定义的相似性与差异 **相似性:** - Groovy的类定义语法与Java非常相似,支持类方法(static)和实例方法。 - 类成员可以有public、protected、private访问...
### Groovy用户指南知识点解析 #### 一、Groovy简介 Groovy是一种灵活的面向对象编程语言,它为Java平台提供了强大的脚本能力,并且能够与现有的Java代码无缝集成。Groovy不仅支持传统的面向对象编程特性,还支持...
### Groovy 入门指南知识点解析 #### 一、Groovy与Grails简介 - **Groovy**: 是一种运行在Java平台上的灵活的面向对象编程语言。Groovy的设计旨在提高开发者的生产力,它具备简洁的语法,同时兼容现有的Java代码和...
2. **groovy用户指南.doc** - 这个指南可能是更深入的学习资源,涵盖了Groovy的高级特性。这可能包括闭包(Closure)的使用,元编程(Metaprogramming)的概念,GroovyShell和GroovyConsole的使用,以及如何利用...
在 `grails-app/domain` 创建 `User.groovy` 文件定义用户类,然后在 `grails-app/controllers/UserController.groovy` 编写控制器,处理用户的注册、登录等操作。在 `grails-app/views/user` 下创建相应的 GSP 页面...
- **模块**:介绍如何使用Groovy的各种模块,如用户指南、高级用法指南等。 - **FAQ**:常见问题解答部分涵盖了开发者可能遇到的问题及其解决方案。 - **测试指南**:详细介绍如何使用Groovy进行单元测试、集成测试...
- `docs`:文档,包括API参考和用户指南,帮助开发者了解Groovy的特性和用法。 - `lib`:库文件,包含Groovy运行时环境所需的JAR文件,可能包括核心库、标准库和其他依赖项。 - `src`:源代码,开发者可以查看Groovy...
- **文档**:可能包括API文档、用户指南和开发者参考,帮助开发者了解和使用该版本的Groovy。 - **示例代码**:可能包含一些示例脚本来展示Groovy的特性和用法。 - **源代码**:虽然名为“binary”,但有时也会包含...
- **docs**:可能有API文档和用户指南。 - **src**:可能包含Groovy源码,供开发者参考学习。 - **conf**:可能包含配置文件,如Groovy的类路径设置。 - **examples**:可能包含示例代码,帮助用户快速上手。 使用...
2. **docs** 目录:存放Groovy的API文档和用户指南,提供了详细的语言参考和示例,对学习和使用Groovy很有帮助。 3. **lib** 目录:包含了Groovy运行时所需的JAR文件,包括Groovy核心库、标准库以及与其他库(如Ant...
### Groovy DSL:基于领域的特定语言开发指南 #### Groovy简介 Groovy是一种基于Java平台的灵活、强大的脚本语言,它与Java高度兼容,能够直接调用Java库中的类和方法,反之亦然。这种无缝集成使得Groovy成为一种极...
总结,"Grails-开源框架---使用指南.pdf"和"Groovy入门经典(中文).pdf"这两本书将帮助读者深入理解Grails框架和Groovy语言,从而更好地开发基于JVM的现代Web应用程序。通过学习这两本书,开发者可以掌握如何利用...
1. **Groovy 介绍** - **定义:** Groovy 是一种灵活的、动态的语言,它运行在 Java 虚拟机(JVM)上。 - **特点:** Groovy 支持面向对象编程、函数式编程以及元编程。 - **应用场景:** Groovy 可用于开发 Web ...
文档通常包括API参考、用户指南、教程以及开发者信息,这些都是理解和学习Groovy的关键资源。以下是一些关于Groovy 1.8.9的知识点: 1. **动态类型**:Groovy支持静态和动态类型,动态类型使得代码更简洁,编写速度...
- 文档:包括API文档和用户指南,帮助开发者了解和使用Groovy。 - 示例代码:展示Groovy的基本用法和特性。 通过解压"groovy-binary-1.8.9.zip",你可以安装并配置Groovy环境,然后利用这个强大的语言进行开发。...
5. **文档和示例**:SDK通常会包含一份详尽的用户指南、API文档和教程,帮助新用户快速上手。这些文档会解释Groovy的基本语法、特性以及如何与其他Java技术(如Spring框架)集成。 6. **源代码**:对于开发者来说,...
5. **groovy用户指南**:这份文档可能是一个详细的用户手册,包含了Groovy的安装步骤、环境配置、开发工具的选择和使用,以及日常开发中可能遇到的问题和解决方案。 6. **wiki-snapshot.pdf**:这可能是一个Groovy...
这本用户指南还并不完善, 就像 Gradle 一样还在开发当中. 在这本指南中, Gradle 的一些功能并没有被完整的展示出来. 一些内容的解释也并不是十分的清楚, 或者假设关于 Gradle 你知道得更多. 我们需要你的帮助来完善...
9. **启动指南**:`start step by step.txt`和`roadmap.txt`可能是项目启动和进阶教程,指导用户逐步搭建和扩展Webx应用。 10. **库和资源**:`lib2`目录可能包含了框架所需的第三方库,而`src`目录则包含了框架的...