`
jxd_zxf
  • 浏览: 229413 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Groovy学习笔记之四——Groovy的类

阅读更多
类使用时注意的一些特别之处:
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,如果是则不执行后面的方法
  }
}
 
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics