一、
groovy
是什么
简单地说,
Groovy
是下一代的
java
语言,跟
java
一样
,
它也运行在
JVM
中。
作为跑在
JVM
中的另一种语言,
groovy
语法与
Java
语言的语法很相似。同时,
Groovy
抛弃了
java
烦琐的文法。同样的语句,使用
groovy
能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。
二、
开发环境
1、
jdk 1.5
以上
2、
eclipse+groovy plugin
(支持
Groovy 1.5.7
)
打开
eclipse
,通过
Software Updates > Find and Install...
菜单,使用“
Search for new features to install
”
下载并安装
groovy
插件。
New
一个
远程站点
,
url
可使用
http://dist.codehaus.org/groovy/distributions/update/
,
插件名
:
Groovy plug-in
。根据需要你可以同时选择
groovy
和
grails
(后续会学习到):
三、
创建
groovy
项目
1、
新建一个
groovy
项目
New --> Project
à
Java Project
创建一个
java
项目。为了方便管理,建议在
source
中建两个
source
文件夹
java
和
groovy
,分别用于存储
java
源文件和
groovy
源文件:
2、
添加
Groovy
特性
在项目上右击,
Groovy
à
Add Groovy Nature
,这样会在项目中添加
Groovy Libraries
。
3、
添加
Groovy
类
在项目
groovy
源文件下右键,
New
à
Other
à
Groovy
à
Groovy Class
自动生成的源代码如下:
public
class
HelloWorld{
/**
*
@param
args
*/
public
static
void
main(
def
args){
//
TODO
Auto-generated
method
stub
}
}
我们在
main
方法中加一句打印语句:
println "Hello World"
4、
编译运行
groovy
类
在源文件上右键,
Compile Groovy File
,然后右键,
Run As
à
Groovy
,在控制台中查看运行结果。
实际上
groovy
语法的简练还体现在,就算整个文件中只有
println "Hello World"
这一句代码(把除这一句以外的语句删除掉吧),程序也照样能够运行。
当然,为了说明
groovy
其实就是
java
,你也可以完全按照
java
语法来编写
HelloWorld
类。
四、
Groovy
语法简介
1、
没有类型的
java
作为动态语言,
groovy
中所有的变量都是对象
(
类似于
.net framework
,所有对象继承自
java.lang.Object)
,在声明一个变量时,
groovy
不要求强制类型声明,仅仅要求变量名前使用关键字
def
(从
groovy jsr 1
开始,在以前的版本中,甚至连
def
都不需要)。
修改
main
方法中的代码:
def
var=
"hello world"
println
var
println
var.class
你可以看到程序最后输出了
var
的实际类型为:
java.lang.String
作为例外,方法参数和循环变量的声明不需要
def
。
2、
不需要的
public
你可以把
main
方法前面的
public
去掉
,
实际上
,
groovy
中默认的修饰符就是
public
,
所以
public
修饰符你根本就不需要写,这点跟
java
不一样。
3、
不需要的语句结束符
Groovy
中没有语句结束符,当然为了与
java
保持一致性,你也可以使用
;
号作为语句结束符。在前面的每一句代码后面加上
;
号结束,程序同样正常运行
(
为了接受
java
程序员的顽固习惯
)
。
4、
字符串连接符
跟
java
一样,如果你需要把一个字符串写在多行里,可以使用
+
号连接字符串。代码可以这样写:
def
var=
"hello "
+
"world"
+
",groovy!"
当然更
groovy
的写法是:
def
var=
"""hello
world
groovy!
"""
三个
”
号之间不在需要
+
号进行连接(不过字符串中的格式符都会被保留,包括回车和
tab
)。
5、
一切皆对象
听起来象是“众生平等”的味道,事实上
groovy
对于对象是什么类型并不关心,一个变量的类型在运行中随时可以改变,一切根据需要而定。如果你赋给它
boolean
,那么不管它原来是什么类型,它接受
boolean
值之后就会自动把类型转变为
boolean
值。看下面的代码:
def
var=
"hello "
+
"world"
+
",groovy!"
println
var;
println
var.
class
;
var=
1001
println
var.
class
输出结果
:
hello world,groovy!
class java.lang.String
class java.lang.Integer
var
这个变量在程序运行中
,
类型在改变。一开始给它赋值
String
,它的类型就是
String
,后面给它赋值
Integer
,它又转变为
Integer
。
6、
循环
删除整个源文件内容,用以下代码替代:
def
var=
"hello "
+
"world"
+
",groovy!"
def
repeat(val){
for
(i =
0
; i <
5
; i++){
println
val
}
}
repeat(var)
输出:
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
hello world,groovy!
注意循环变量
i
前面没有
def
。当然也没有
java
中常见的
int
,但如果你非要加上
int
也不会有错,因为从
Groovy1.1beta2
之后开始(不包括
1.1beta2
),
groovy
开始支持
java
经典的
for
循环写法。
此外,上面的
for
语句还可以写成:
for
(i
in
0
..
5
)
这样的结果是一样的。
7、
String
和
Gstring
除了标准的
java.lang.String
以外(用
’
号括住),
groovy
还支持
Gstring
字符串类型(用
“
号括住)。把上面的
for
循环中的语句改成:
println
"This is ${i}:${val}"
运行一下,你就会明白什么是
Gstring
。
8、
范围
这个跟
pascal
中的“子界”是一样的。在前面的
for
循环介绍中我们已经使用过的
for
(i
in
0
..
5
)
这样的用法,其中的
0
..
5
就是一个范围。
范围
是一系列的值。例如
“
0..4
”
表明包含
整数
0
、
1
、
2
、
3
、
4
。
Groovy
还支持排除范围,“
0..<4
”
表示
0
、
1
、
2
、
3
。还可以创建字符范围:“
a..e
”
相当于
a
、
b
、
c
、
d
、
e
。“
a..<e
”
包括小于
e
的所有值。
范围主要在
for
循环中使用。
9、
默认参数值
可以为方法指定默认参数值。我们修改
repeat
方法的定义:
def
repeat(val,repeat=
3
){
for
(i
in
0
..<repeat){
println
"This is ${i}:${val}"
}
}
可以看到,
repeat
方法增加了一个参数
repeat
(并且给了一个默认值
3
),用于指定循环次数。
当我们不指定第
2
个参数调用
repeat
方法时,
repeat
参数取默认值
3
。
10、
集合
Groovy
支持最常见的两个
java
集合:
java.util.Collection
和
java.util.Map
。前面所说的范围实际也是集合的一种(
java.util.List
)。
(1) Collection
Groovy
中这样来定义一个
Collection
:
def
collect
=[
"a"
,
"b"
,
"c"
]
除了声明时往集合中添加元素外,还可以用以下方式向集合中添加元素:
collect
.add(
1
);
collect
<<
"come on"
;
collect
[
collect
.
size()
]=
100
.
0
Collection
使用类似数组下标的方式进行检索:
println
collect
[
collect
.
size
()-
1
]
println
collect
[
5
]
groovy
支持负索引:
println
collect
[-
1
]
//
索引其倒数第
1
个元素
println
collect
[-
2
]
//
索引其倒数第
2
个元素
Collection
支持集合运算:
collect
=
collect
+
font-size: 10pt; color: red; font
分享到:
相关推荐
Groovy基础教程源码涵盖了Groovy语言的各个方面,是学习和理解Groovy语言的宝贵资源。下面将详细阐述Groovy的一些核心知识点。 1. **动态类型与静态类型**: Groovy支持动态类型,这意味着变量在声明时无需指定...
1. **Groovy基础教程**:可能涵盖Groovy的语法特性,如动态类型、闭包、元对象编程(Meta-Object Protocol, MOP)等,以及如何在Java项目中集成Groovy脚本。 2. **Grails框架介绍**:解释Grails的基本概念,如...
"OFBiz开发者装备系列:0005"可能是一个关于OFBiz开发的学习资料系列,其中的"Groovy中文教程.pdf"可能是该系列的一部分,提供了详细的Groovy语言学习内容,适合对OFBiz开发感兴趣的Java开发者阅读。而"OFBiz其它资源...
通过以上内容,读者不仅可以掌握Groovy的基础知识,还能深入了解其与Java的集成方式以及如何利用Groovy提高日常Java项目的开发效率。无论是初学者还是经验丰富的Java开发者,都能从Groovy中获益匪浅。
### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向...掌握Groovy的基础知识和进阶技巧,对于提升开发效率和个人技能都大有裨益。希望本文能够帮助大家更好地理解和使用Groovy脚本。
这些知识点是对Groovy基础语法的一个大致概述,而文件中的内容则展示了如何在实际代码中应用这些语法。由于文件内容有些混乱,并且含有重复的词汇和一些扫描错误,以上总结的知识点基于对Groovy语言的理解和部分可...
这本书深入浅出地讲解了Groovy的各个方面,包括基础语法、面向对象特性、元编程、领域特定语言(DSL)构建以及与Java的协作等。 1. **基础语法**:Groovy的语法与Java有很高的相似性,但更加灵活。例如,变量声明...
### Groovy 1.7 官方教程知识点详解 #### 一、Groovy简介 - **定义**:Groovy是一种灵活且动态的语言,专为Java虚拟机(JVM)设计。 - **特点**: - **继承优势**:在保留Java强项的基础上,引入了更多来自Python...
这篇Groovy入门教程由杨宏焱在2009年5月撰写,主要介绍了Groovy的基础知识和开发环境的配置。 首先,Groovy被定义为下一代的Java语言,它与Java兼容并运行在相同的平台上。Groovy的语法与Java相似,但更简洁,避免...
本篇教程是关于Groovy编程语言中布尔(Boolean)类型的详细讲解,其中涉及到布尔类型的定义、使用以及Groovy对于布尔值操作的特殊规则。 首先,布尔类型是编程语言中一种基础的数据类型,用于表示逻辑上的真值,...
1. **基础语法**:Groovy的语法与Java非常相似,但更加简洁。例如,它不需要分号来结束语句,变量声明更自由,可以省略类型。此外,Groovy支持闭包,这是它的一大特色,可以用于函数式编程。 2. **动态类型与静态...
- **官方文档**:Groovy官网提供了详尽的API文档和教程,是学习Groovy的基础资料。 - **书籍**:“Groovy in Action” 和 “Groovy Programming: An Introduction to Building Domain-Specific Languages” 是两本...
1. Groovy基础:了解Groovy的基本语法、类和对象、集合操作、文件I/O、网络编程等。 2. Grails架构:理解MVC(模型-视图-控制器)设计模式,以及Grails中的Controller、Service、Domain Class等组件。 3. GORM和...
### Groovy和Grails配置方法 #### 一、Groovy与Grails简介 Groovy是一种强大的面向对象编程语言,它运行在Java平台上...希望本教程能够帮助初学者快速入门Groovy和Grails的使用,并为后续的深入学习打下坚实的基础。
本教程适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java™ 开发人员。了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合、内置正则表达式和闭包。
### Groovy学习笔记知识点梳理 #### 一、Groovy简介 - **概念**:Groovy是一种灵活的脚本语言,其设计初衷是为了更好地服务于Java开发者。它具备许多现代动态语言的特点...这些知识点为后续深入学习提供了坚实的基础。