`

Groovy用户指南(1)

阅读更多

1、类<o:p></o:p>

1)类<o:p></o:p>

l         Groovy的类定义和Java类似<o:p></o:p>

Ø         方法可以基于类(static)或实例<o:p></o:p>

Ø         可以为publicprotectedprivate<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         不同于基于ClassGroovy,纯脚本中的函数用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用户指南知识点解析 #### 一、Groovy与Java类定义的相似性与差异 **相似性:** - Groovy的类定义语法与Java非常相似,支持类方法(static)和实例方法。 - 类成员可以有public、protected、private访问...

    Groovy用户指南

    ### Groovy用户指南知识点解析 #### 一、Groovy简介 Groovy是一种灵活的面向对象编程语言,它为Java平台提供了强大的脚本能力,并且能够与现有的Java代码无缝集成。Groovy不仅支持传统的面向对象编程特性,还支持...

    groovy 入门指南 文档

    ### Groovy 入门指南知识点解析 #### 一、Groovy与Grails简介 - **Groovy**: 是一种运行在Java平台上的灵活的面向对象编程语言。Groovy的设计旨在提高开发者的生产力,它具备简洁的语法,同时兼容现有的Java代码和...

    groovy学习大礼包

    2. **groovy用户指南.doc** - 这个指南可能是更深入的学习资源,涵盖了Groovy的高级特性。这可能包括闭包(Closure)的使用,元编程(Metaprogramming)的概念,GroovyShell和GroovyConsole的使用,以及如何利用...

    Groovy&Grails - 指南.ppt

    在 `grails-app/domain` 创建 `User.groovy` 文件定义用户类,然后在 `grails-app/controllers/UserController.groovy` 编写控制器,处理用户的注册、登录等操作。在 `grails-app/views/user` 下创建相应的 GSP 页面...

    groovy 1.7官方教程

    - **模块**:介绍如何使用Groovy的各种模块,如用户指南、高级用法指南等。 - **FAQ**:常见问题解答部分涵盖了开发者可能遇到的问题及其解决方案。 - **测试指南**:详细介绍如何使用Groovy进行单元测试、集成测试...

    apache-groovy 2.4.13

    - `docs`:文档,包括API参考和用户指南,帮助开发者了解Groovy的特性和用法。 - `lib`:库文件,包含Groovy运行时环境所需的JAR文件,可能包括核心库、标准库和其他依赖项。 - `src`:源代码,开发者可以查看Groovy...

    groovy-binary-1.8.6

    - **文档**:可能包括API文档、用户指南和开发者参考,帮助开发者了解和使用该版本的Groovy。 - **示例代码**:可能包含一些示例脚本来展示Groovy的特性和用法。 - **源代码**:虽然名为“binary”,但有时也会包含...

    apache-groovy-sdk-3.0.8.zip

    - **docs**:可能有API文档和用户指南。 - **src**:可能包含Groovy源码,供开发者参考学习。 - **conf**:可能包含配置文件,如Groovy的类路径设置。 - **examples**:可能包含示例代码,帮助用户快速上手。 使用...

    apache-groovy-sdk-2.5.8.zip

    2. **docs** 目录:存放Groovy的API文档和用户指南,提供了详细的语言参考和示例,对学习和使用Groovy很有帮助。 3. **lib** 目录:包含了Groovy运行时所需的JAR文件,包括Groovy核心库、标准库以及与其他库(如Ant...

    Groovy DSL

    ### Groovy DSL:基于领域的特定语言开发指南 #### Groovy简介 Groovy是一种基于Java平台的灵活、强大的脚本语言,它与Java高度兼容,能够直接调用Java库中的类和方法,反之亦然。这种无缝集成使得Groovy成为一种极...

    Grails-开源框架---使用指南.pdf与Groovy入门经典(中文).pdf(2合一)

    总结,"Grails-开源框架---使用指南.pdf"和"Groovy入门经典(中文).pdf"这两本书将帮助读者深入理解Grails框架和Groovy语言,从而更好地开发基于JVM的现代Web应用程序。通过学习这两本书,开发者可以掌握如何利用...

    Groovy User Guide

    1. **Groovy 介绍** - **定义:** Groovy 是一种灵活的、动态的语言,它运行在 Java 虚拟机(JVM)上。 - **特点:** Groovy 支持面向对象编程、函数式编程以及元编程。 - **应用场景:** Groovy 可用于开发 Web ...

    groovy-docs-1.8.9.zip

    文档通常包括API参考、用户指南、教程以及开发者信息,这些都是理解和学习Groovy的关键资源。以下是一些关于Groovy 1.8.9的知识点: 1. **动态类型**:Groovy支持静态和动态类型,动态类型使得代码更简洁,编写速度...

    groovy-binary-1.8.9.zip

    - 文档:包括API文档和用户指南,帮助开发者了解和使用Groovy。 - 示例代码:展示Groovy的基本用法和特性。 通过解压"groovy-binary-1.8.9.zip",你可以安装并配置Groovy环境,然后利用这个强大的语言进行开发。...

    apache-groovy-sdk-2.4.12.zip

    5. **文档和示例**:SDK通常会包含一份详尽的用户指南、API文档和教程,帮助新用户快速上手。这些文档会解释Groovy的基本语法、特性以及如何与其他Java技术(如Spring框架)集成。 6. **源代码**:对于开发者来说,...

    groovy经典资料汇集

    5. **groovy用户指南**:这份文档可能是一个详细的用户手册,包含了Groovy的安装步骤、环境配置、开发工具的选择和使用,以及日常开发中可能遇到的问题和解决方案。 6. **wiki-snapshot.pdf**:这可能是一个Groovy...

    Gradle用户指南中文版

    这本用户指南还并不完善, 就像 Gradle 一样还在开发当中. 在这本指南中, Gradle 的一些功能并没有被完整的展示出来. 一些内容的解释也并不是十分的清楚, 或者假设关于 Gradle 你知道得更多. 我们需要你的帮助来完善...

    Groovy need not rails——介绍自己写的一个基于groovy的框架,Webx

    9. **启动指南**:`start step by step.txt`和`roadmap.txt`可能是项目启动和进阶教程,指导用户逐步搭建和扩展Webx应用。 10. **库和资源**:`lib2`目录可能包含了框架所需的第三方库,而`src`目录则包含了框架的...

Global site tag (gtag.js) - Google Analytics