我想了解codehaus page下的'属性和字段规则'部分。
这是否意味着我们可以有两个变量,一个私有和其他公共,私有使用公共字段?请参阅下面我尝试过的示例程序。
class Car {
private def brake
def brake // when does this get used? if I declare public, it gives compilation error
protected void setBrake() {
this.brake = brake
}
static def main(args) {
Car c = new Car()
c.setBrake 'abc'
println c.brake
}
}
答案 0 :(得分:3)
这就是它的意思。
class Car {
private def brake
// Same name property will add getter/setter for the above field
def brake
static def main(args) {
Car c = new Car()
c.setBrake 'abc' // Use setter
println c.getBrake() // Use getter
}
}
尝试以上示例评论该属性,您应该看到groovy.lang.MissingMethodException
setBrake()
,因为它会被属性添加。
页面中的措辞表明,如果您有一个字段(可能是私有的)和一个属性(def制动),那么该属性将为该字段添加访问者方法,而不是创建一个新的私有字段。