Groovy面向对象四
程序员文章站
2022-07-03 15:22:34
...
字段
字段是类或者特征的成员带有一个强制的访问修饰符(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 }
上一篇: nginx修改默认端口
下一篇: Centos 7 搭建Jboss