groovy 速学 - 11 - 类

目录

摘要

定义类,默认构造方法,”.”,不可变类

定义类

class Song {
  def name
  def artist
  def genre

  def show() {
    "${name}:${artist}"
  }
}

Grooy 中默认访问权限都是 public

默认构造方法

当一个类被定义时,Groovy 会自动根据成员变量生成对应的默认构造方法

def song = new Song(artist: "Peter", name: "Hello World")

Setter 和 Getter

Groovy 对象通过 . 调用属性实际调用的是对应的 setter 和 getter 方法
Groovy 自动对这些属性做了封装处理

class Song {
  def name
  def artist
  def genre

  def setArtist(p) {
    artist = p.toUpperCase()
  }
}

def song = new Song(artist: "Peter", name: "Hello World")
song.artist = "Tim"
println(song.artist)                //TIM

不可变类

特点
  • 不可变类使用 @Immutable 进行修饰
  • 不可变类成员属性只能在构造对象时设置,之后不能进行更改
  • 不可变类的成员属性定义时必须明确指明类型,不能使用 def 定义
使用
@Immutable
class ImmutSong {
  String name
  String artist
  String genre

  def show(){
    artist
  }
}

ImmutSong song = new ImmutSong(artist: "Peter")
//        song.name="Hello"     error,不能进行修改
//        song.artist="Jack"    error,不能进行修改
println song.show()     //Peter

A:

尽量使用不可变类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值