2.3 JavaBean

  1. JavaBean 的使用在工程中也是很重要的一部分,先来看看 Java 中 JavaBean 的使用:
public class JCar {

    private int miles;
    private final int year;

    public JCar(int theYear) {
        this.year = theYear;
    }

    public int getMiles() {
        return miles;
    }

    public void setMiles(int miles) {
        this.miles = miles;
    }

    public int getYear() {
        return year;
    }

    public static void main(String[] args) {
        JCar car = new JCar(2022);
        System.out.println("Year: " + car.getYear());
        System.out.println("Miles: " + car.getMiles());
        car.setMiles(200);
        System.out.println("Miles: " + car.getMiles());
    }
}

打印结果:

Year: 2022
Miles: 0
Miles: 200
  1. 在 Groovy 中,优化了 JavaBean 的写法:
class Car {
    // int miles
    def miles = 0
    final year

    Car(year) {
        this.year = year
    }
}

Car car = new Car(2022)
println "Year: $car.year"
println "Miles: $car.miles"
car.miles = 20
println "Miles: $car.miles"

打印结果:

Year: 2022
Miles: 0
Miles: 20
  1. 在上面的代码中,def 是申明了一个属性,当然也可以使用 int miles 这样的语句。 Groovy 会自动为其成员变量创建 getter 和 setter 方法。当在代码中调用变量时,其实是在调用该变量的访问器。

  2. 要把属性设置为只读的,需要使用 final 来声明该属性。这是,Groovy 会为该属性提供 getter 方法,但不提供 setter 方法,修改 final 字段的任何操作都会导致异常。

  3. 也可以把变量声明为 private,但是 Groovy 并不遵守这一点,因此如果想把变量设置为私有的,必须实现一个拒绝任何修改的 setter 方法。

你可能感兴趣的:(2.3 JavaBean)