Scala 构造方法和Java 构造方法比较
1.带参数的构造方法
public class Foo() {
public Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
}
class Foo(val bar:Bar)
使用val 可创建一个不变的final public 属性
使用var 可创建一个可变的public 属性
2.带私有属性的构造方法
public class Foo() {
private final Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
}
class Foo(private val bar:Bar)
private 指定为 private 属性 不能通过 foo.bar 访问.
3.调用super构造方法
public class Foo() extends SuperFoo {
public Foo(Bar bar) {
super(bar);
}
}
class Foo(bar:Bar) extends SuperFoo(bar)
4 多个构造函数
public class Foo {
public Bar bar;
public Foo() {
this(new Bar());
}
public Foo(Bar bar) {
this. bar = bar;
}
}
class Foo(val bar:Bar){ def this() = this(new Bar) }
5.getter setter 方法
public class Foo() {
private Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
public Bar getBar() {
return bar;
}
public void setBar(Bar bar) {
this.bar = bar;
}
}
1.
import scala.reflect._ class Foo(@BeanProperty var bar:Bar)
2.
import scala.reflect._ class Foo(aBar:Bar) { @BeanProperty private var bar = aBar }