Groovy基础知识介绍

目录

Groovy介绍:

Groovy是什么

Groovy与Java对比

演示

Groovy高级特性

演示1

演示2

演示3


Groovy介绍:

  • Groovy是什么

Groovy时用于Java虚拟机的一种敏捷的动态语言,是一种成熟的面向对象的编程语言,既可以用于面向对象编程,也可以用作纯粹的脚本语言。其同时具有闭包和动态语言中的其他特性。

  • Groovy与Java对比

1.Groovy完全兼容Java语法,在Groovy中可以编写Java代码;

2.分号是可选的;

3.类、方法默认是public;

4.编译器自动给属性添加getter、setter;

5.属性可以直接用点号获取;

6.最后一个表达式的值会被作为返回值;

7.==等同于equals();

  • 演示

// 类和方法默认是public的
class User {
    private String name;

    //  结尾可以不写分号
    private int age

    User(String name, int age) {
        this.name = name
        this.age = age
    }

    String getName() {
        // 最后一个表达式被作为返回值
        name
    }

    void setName(String name) {
        this.name = name
    }

    // 编译器自动添加getter/setter
    // age的getter/setter省略

}

User user1 = new User("Rose", 18);
// 属性可以直接用点号获取
println "user1.name = " + user1.name;
println "user1.age = " + user1.age;

User user2 = null;

// ==等同于equals方法,不会报空指针异常
println "user1是否等于user2:" + (user1 == user2);

  • Groovy高级特性

1.自带assert语句;

2.可选类型定义;

3.可选的括号;

4.字符串写法;

5.集合API;

6.闭包;

  • 演示1

// 可选的类型定义
def version = 1;

// assert
assert version == 1;

// 字符串写法:
// 写法1:单引号,仅仅表示这是一个字符串
def str = 'Hello World'

// 写法2:双引号,字符串中可以添加变量
def str2 = "This version is ${version}"

// 写法3:三个单引号,字符串可以换行
def str3 = '''Welcome
      to
      Groovy'''

// 方法的括号可以不写
println(str)
println str2
println(str3)

  • 演示2

// 创建list
def lists = ['maven','gradle']
// 追加元素
lists << 'ant'
assert lists.getClass() == ArrayList
assert lists.size() == 3

// 创建map
def testMap = ['Maven':2018,'Gradle':2020]
// 修改元素值
testMap.Gradle = 2019

// 不同方式获取map值
println testMap.Maven
println testMap['Gradle']
// 获取map对应的Java类型
println testMap.getClass()

  • 演示3

// 闭包:就是一个代码块,可以包含参数,也可以不包含参数,其本身也可以作为参数

// 创建一个包含参数的闭包
def c1 = {
    v ->
        println v
}

// 创建一个不带参数的闭包
def c2 = {
    println 'Hello Groovy'
}

// 创建一个带参数的闭包方法
def method1(Closure closure){
    closure('Hello World')
}

// 创建一个不带参数的闭包方法
def method2(Closure closure){
    closure()
}

// 以闭包为参数,调用方法
method1(c1)
method1(c2)
method2(c1)
method2(c2)


Groovy的基础知识先介绍到这里,接下来的博文会详细介绍Gradle的用法,其中便会涉及到Groovy的知识点,拭目以待吧~

 

猜你喜欢

转载自blog.csdn.net/XU906722/article/details/81940682