char :16位
当原始类型调用.toString()
或者 .equals(other)
可以进行自动包装和展开
使用extends
关键字,Groovy同样也不支持多重继承,可以继承类或者接口(类继承类,接口继承接口)
class Test3 extends Test2{
...
}
//虽然不报错,但在运行是就会有报错
class Test3 extends Test2,Test4{}
Groovy 在泛型方面与 Java 具有相同的概念。 定义类和方法时,可以使用类型参数并创建 泛型类、接口、方法或构造函数。
泛型类和方法的使用,无论它们是否在 Java 中定义 或 Groovy,可能涉及提供类型参数。
我们可以声明一个 “字符串列表” 如下所示:
List<String> roles = ['Trinity', 'Morpheus']
使用class
关键字声明
类和类成员可以具有与 Java 中相同的修饰符(public、protected、private、static 等)
Groovy 类与其 Java 对应类之间的主要区别是:
以下代码提供了一个示例类。
class Test1 {
def username;
def password;
def getAll(){
username = "wangwu"
password = "123321"
username + password
}
}
package cn.test
class Test1 {
def username;
def password;
def showInner(){
def inner = new Inner()
inner.show()
}
class Inner{
def show(){
println("inner ...")
}
}
}
class Outer3 {
private String privateStr = 'some string'
def startThread() {
new Thread(new Runnable() {
void run() {
println "${privateStr}."
}
}).start()
}
}
使用static
关键字进行声明
class Test7 {
static class InnerTest7{
}
}
使用abstract
关键字设置位抽象类,方法也必须用abstract
关键字声明,否则认为是带有方法体的方法
abstract class Test2 {
abstract def show();
def show2(){
println("show2")
}
}
使用interface
关键字声明
interface Test5 {
def showTest5()
}
使用implements
关键字进行实现
class Test6 implements Test5{
}
闭包是一个开放的、匿名的代码块,它可以接受参数、也可以有返回值
闭包可以引用周围作用域中声明的变量(lambda表达式)
虽然我在这里这样将闭包称为lambda但实际上闭包不等于lambda,至于区别大家可以去看一下相关文章
{...}
如
def bi(a){
println(a)
}
()->{...}
如:
def lam = ()->{
println("this is lam")
}
lam()
lam.call()