groovy静态变量_Groovy学习-包

本文介绍了Groovy中包的概念,包括如何定义包和使用import导入类。Groovy默认导入了多个java和groovy的常用类。此外,还详细讲解了import *、静态导入(static import)以及import别名的用法,以及脚本与类的关系,脚本中的方法和变量处理方式。
摘要由CSDN通过智能技术生成

Groovy的包的概念和Java一样。

包名

在一个Groovy文件里面,通过package语句定义这是哪一个包。

6bbc5bd66f613b70d8184c0df057e0aa.png

可以看到编译完之后的class文件所在的路径。

d515115298423a7d64b2b523c84c4af6.png

Imports

通过import语句来引入类。

c6226c42bf37ee5c6840ec7c53a76e32.png
131f5df5b061c81da0401e084a43c2e9.png

默认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包里面的所有内容。

添加一个新类。

43f58189ae7199b7ab555ab8171b7650.png

使用import *导入两个类。

b910031a57b991a40e441b78913dde51.png

运行结果。

05d1095ba72986c7ae88a23c138338fc.png

Static import

static import用于导入一些静态的方法或者字段。

fff0e6bfea0974c44f333b49e7b0aaf6.png

添加一个helloworld()方法。

然后使用static import引入,并使用

f452bd3d3df4cba4681f191797f3fd10.png
c37805c904bd63eb0d204d1285409cf2.png

static import别名

使用Static import的时候,加上as,用来指定另一个名字。当两个要引入的方法重名的时候很有用。

846fc908d4aab9e50d2e8f62b62cef4d.png
1f34a10b719560749c100227da4eaca4.png

static * import

用于引入所有的静态方法

再添加一个静态方法

d1595ba630bdbed00b783e8699ec3c9c.png

使用static * import所有的静态方法

e9661efbf1b41fc34a59c232083d0d93.png

运行结果

400afad9866ba7b361bf6d513b57a9d1.png

import别名

同样在引入的类名字有一样的时候,可以使用别名。

18305ce45904c3e873f2a33e81be2981.png

运行结果

729f9e9dbd7f935a68d4d059dae7464f.png

脚本和类的关系

Groovy支持运行脚本的类。

之前都是运行一个个脚本,也可以像Java一样使用static Main方法。

3ca3d206e85174a37fa91b5b91155b15.png
b4f7c3c39b5453b9964db3c36de83549.png

Script类

一个脚本在经过Groovy翻译后,里面所有脚本的内容都会被放在一个类的run()方法里面,并且自动创建一个main方法,来调用这个run函数。

比如println 'HelloWorld',相当于下面的代码

f94eeebd87fce57d4713728e2f98c2c3.png
bf2ebcf3ec06b8ab1e6f726c17a83f2a.png

方法

在Groovy脚本里面定义的方法,也会被放到那个自动创建的类里面。

如果有方法穿插在脚本里面,则方法会被提取出来,然后脚本统一放到run()方法里面。

比如

println('helloworld1')

def myfunc() {

println('helloworld in func')

println('helloworld2')

myfunc()

会变成下面的代码

e5b47d38204dabdc2cf106963d4d5741.png
c877ce29170b65781d0d4b5fe41ebd59.png

变量

在脚本里面变量可以声明,也可以不声明

但是如果声明了,就会变成run()方法的局部变量。

下面的调用就会报错。

48f09dd90ee174b17341c17af58aa5c5.png
90b38374d1f0a513d474a22d352aba85.png

去掉声明,则会是script binding,这样就能在函数里面使用了。

77466434f710f49806a22263f787e145.png
94a0b54168c305369740c1ec68f7520f.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值