Groovy 动态面向对象复盘总结,统统都会

}

}

//隐式构造

MetaCreater c = [‘c’, ‘c-c’]

组织类和脚本


Groovy 类在字节码级别就是 Java 类,所以 Groovy 对象在内存中就是 Java 对象,在源代码级别 Groovy 类和对象处理几乎是 Java 语法的一个超集,只有嵌套类是一个例外,当前 Groovy 语法还不支持嵌套类,并且在数组的定义上有微小的改变。

文件和类的关系

  • 如果一个 groovy 文件不包括类声明,那么它被作为一个脚本处理。即包装成继承 Script 类实现,自动生成的类的名称与源文件名称相同,文件内容被包装进一个 run 方法中,并且增加了一个 main 方法用来启动脚本。

  • 如果 groovy 文件中只包含一个类声明,并且这个类的名称与文件名相同,则含义与 java 中一样。

  • 如果一个 groovy 文件包含多个不同访问范围的类(类名没必要和文件名一样)声明,groovyc 编译器完美的为所有在这个文件中声明的类创建*.class文件,如果你希望直接调用你的脚本,例如在命令行或者 IDE 中使用 groovy, 那么在你的文件中的第一个类中应该有一个 main 方法。

  • 如果一个 groovy 文件混合了类的声明和脚本代码,在这种情况下,脚本代码将变成一个主类被执行,因此不要声明一个与源文件同名的类。

  • 当没有进行显式编译的时候,groovy 通过匹配相应名称的*.groovy源文件来查找类,在这点上,名称变得十分重要,groovy 仅仅根据类名称是否匹配源文件名称来查找类,当这样的一个文件被找到的时候,在这个文件中声明的所有类都将被转换,并且 groovy 在后面的时间都将能找到这些类。

在包中组织类

Groovy 延续了 Java 包结构组织文件的方式,包结构用来在文件系统中找到相应的类文件。由于*.groovy源文件不需要编译成*.class文件,因此在查找类的时候也需要查找*.groovy文件,Groovy 查找*.groovy时重用了类路径。当我们查找一个给定的类的时候,如果 groovy 同时找到了一个*.class*.groovy文件,它使用最后修改的那个文件,也就是说,如果源文件在上一次编译之后做了修改,groovy 将重新编译源文件到*.class文件。

Groovy 跟随 Java 的导入语句,在声明类之前进行导入。默认情况下 groovy 导入了 6 个包和两个类,这使得每个 groovy 源代码程序看起来都包含了下面的初始化语句:

//【工匠若水 加微信 yanbo373131686 联系我,关注微信公众号:码农每日一题 未经允许严禁转载 https://blog.csdn.net/yanbober】

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

在 Groovy 中的 import 语句有另外一个强大的作用,它可以与 as 关键字一起使用&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值