Groovy的包的概念和Java一样。
包名
在一个Groovy文件里面,通过package语句定义这是哪一个包。
可以看到编译完之后的class文件所在的路径。
Imports
通过import语句来引入类。
默认Imports
Groovy里面为什么能够直接使用Integer, String等对象,就是因为Groovy里面默认都会Import一堆类。相当于执行了下面的代码。
import java.lang.*
import java.util.*
import java.io.*
import java.net.*
import groovy.lang.*
import groovy.util.*
import java.math.BigInteger
import java.math.BigDecimal
Import *
import * 用于import包里面的所有内容。
添加一个新类。
使用import *导入两个类。
运行结果。
Static import
static import用于导入一些静态的方法或者字段。
添加一个helloworld()方法。
然后使用static import引入,并使用
static import别名
使用Static import的时候,加上as,用来指定另一个名字。当两个要引入的方法重名的时候很有用。
static * import
用于引入所有的静态方法
再添加一个静态方法
使用static * import所有的静态方法
运行结果
import别名
同样在引入的类名字有一样的时候,可以使用别名。
运行结果
脚本和类的关系
Groovy支持运行脚本的类。
之前都是运行一个个脚本,也可以像Java一样使用static Main方法。
Script类
一个脚本在经过Groovy翻译后,里面所有脚本的内容都会被放在一个类的run()方法里面,并且自动创建一个main方法,来调用这个run函数。
比如println 'HelloWorld',相当于下面的代码
方法
在Groovy脚本里面定义的方法,也会被放到那个自动创建的类里面。
如果有方法穿插在脚本里面,则方法会被提取出来,然后脚本统一放到run()方法里面。
比如
println('helloworld1')
def myfunc() {
println('helloworld in func')
println('helloworld2')
myfunc()
会变成下面的代码
变量
在脚本里面变量可以声明,也可以不声明
但是如果声明了,就会变成run()方法的局部变量。
下面的调用就会报错。
去掉声明,则会是script binding,这样就能在函数里面使用了。