2.2Groovy中的JavaBean

来源:互联网 发布:数据库数据存储方式 编辑:程序博客网 时间:2024/06/02 01:15

package learnclass Car {    final year    private miles = 0    Car ( theYear ) { year = theYear}    def getMiles() {        println "getMiles called"        miles    }    private void setMiles(){        throw new IllegalAccessError("you're not allowed to change miles")    }    def drive(dist) {if (dist > 0) miles += dist }    public static void main(String[] args) {        def car = new Car(2012)        println "Year: $car.year"        println "Miles: $car.miles"        println 'Driving'        car.drive(10)        println "Miles:$car.miles"        try {            println 'Can I set the year?'            //car.year = 1900        }catch (groovy.lang.ReadOnlyPropertyException e){            println e.message        }        try {            println 'Can I set th miles?'            car.miles = 12        } catch (IllegalAccessError e) {            println e.message        }    }}
运行结果:

Year: 2012
getMiles called
Miles: 0
Driving
getMiles called
Miles:10
Can I set the year?
Can I set th miles?

程序分析:

1、属性不需要有get/set方法,GDK会默认的创建get/set方法。

2、属性设置为final,GDK不会创建get方法,只有get方法(只读,不能更改),不能给final变量赋值。

3、不区分public/private/protect,默认是public。

4、异常可以不用处理,给调用者处理。

原创粉丝点击