Groovy面向对象四

字段

        字段是类或者特征的成员带有一个强制的访问修饰符(public、protected、private)、一个或多个可选修饰符(static、final、synchronized)、一个可选的类型和一个强制的名称。字段可以在声明时直接初始化。可以省略字段的类型,但是不推荐这样做。在使用可选的类型检查时是很重要的。但是在脚本中或者使用动态类型时可以省略类型。

属性

    属性是类外部可见的特性,属性没有访问修饰符、一个或多个可选修饰符(static、final、synchronized)、一个可选的类型和一个强制的名称。Groovy会为属性生成合适的getter/setter方法。如果属性声明为final的,那么就不会为其生成setter方法。通过属性名访问属性会隐式的调用getter/setter方法。可以通过类实例的元字段properties获得所有的属性。即使没有定义字段,但是提供了遵循JavaBean规范的getter/setter方法,Groovy也可以识别属性。
//field
class Data {
    private int id                                  
    protected String description                    
    public static final boolean DEBUG = false       
}

class Data {
    private String id = IDGenerator.next() 
    // ...
}
//properties
class Person {
    String name
    void name(String name) {
        this.name = "Wonder$name"       
    }
    String wonder() {
        this.name                       
    }
}
def p = new Person()
p.name = 'Marge'                        
assert p.name == 'Marge'                
p.name('Marge')                         
assert p.wonder() == 'WonderMarge'

class Person {
    String name
    int age
}
def p = new Person()
assert p.properties.keySet().containsAll(['name','age'])

class PseudoProperties {
    // a pseudo property "name"
    void setName(String name) {}
    String getName() {}

    // a pseudo read-only property "age"
    int getAge() { 42 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值