类使用时注意的一些特别之处:
1、类定义不需要public修饰符,且不需要括号;
2、属性定义使用def关键字作为类型;
3、自动创建一个构造函数,构造函数接收一个键值对映射,映射的KEY对应属性名称,映射可以只有类的部分属性;
4、自动生成标准的getter/setter方法;
5、可以使用.表达式访问属性,如class.id;
6、接收参数的方法可以省略括号,如class.setId "id1";
7、方法没有return关键字,默认最后一行为返回值,建议指定返回类型;
8、允许访问不带参数的方法时省略括号,但不建议这样做,以免被当成访问属性;
9、语句后不需要分号“;”。
1、类定义不需要public修饰符,且不需要括号;
2、属性定义使用def关键字作为类型;
3、自动创建一个构造函数,构造函数接收一个键值对映射,映射的KEY对应属性名称,映射可以只有类的部分属性;
4、自动生成标准的getter/setter方法;
5、可以使用.表达式访问属性,如class.id;
6、接收参数的方法可以省略括号,如class.setId "id1";
7、方法没有return关键字,默认最后一行为返回值,建议指定返回类型;
8、允许访问不带参数的方法时省略括号,但不建议这样做,以免被当成访问属性;
9、语句后不需要分号“;”。
一、定义Song实体类
package org.groovy
class Song {
def name
def artist
def genre
//覆盖toString方法
String toString(){
"${name},${artist},${genre}" //没有return,默认返回最后一行的值
}
}
二、定义使用类
package org.lib
import org.groovy.Song
class SongExample {
static void main(args){
//初始化Song
def song = new Song(name:"中国人",artist:"李德华")
//属性操作
song.name = "冰雨"
song.setName "月老"
println song.getName()
println song //打印song对象,将会Song.toString()
}
}
三、null异常处理
Groovy使用?操作符防止在null对象上调用方法
package org.lib
import org.groovy.Song
class SongExample {
static void main(args){
//初始化Song
def song = new Song(name:"中国人",artist:"李德华")
//属性操作
song.name = "冰雨"
song.setName "月老"
//println song.genre.toUpperCase() //由于genre并未赋值(默认是null),故调用toUpperCase方法时抛空指针异常
println song.genre?.toUpperCase() //?会判断genre是否为null,如果是则不执行后面的方法
}
}