Groovy 动态面向对象复盘总结,安卓开发面试

本文介绍了Groovy中文件和类的关系,如何在包中组织类,Multimethods,GroovyBean特性以及元类MetaClass的概念。Groovy支持动态方法分派,简化JavaBean使用,并允许在运行时改变对象行为。文章通过示例展示了Groovy的灵活性,适用于Android开发面试的相关知识。
摘要由CSDN通过智能技术生成

文件和类的关系

  • 如果一个 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文件,它使用最后修改的那个文件,也就是说,如果源文件在上一次编译之后做了修改,gro
ovy 将重新编译源文件到*.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 语句有另外一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值