class Person {
private var age = 0
def increment(){age += 1}
def current = age
}
class Student{
var age = 0
}
object HelloOOP {
def main(args: Array[String]): Unit = {
val person = new Person()
person.increment()
println(person.current)
}
在Scala里面,可以允许有多个class,而且默认是public级别的。
var age = 0
在scala里面,定义一个属性必须要手动赋值,不像在java里面,会默认赋值0
这里,scala默认属性是private的,而且也会默认生成共有的setter、getter方法。但是如果属性被显示声明为private,那么默认会生成private的getter、setter
val age = 0
对于val,scala会默认加上final,并且只生成getter方法,没有setter方法
private[this] var age = 0
scala特有,对象私有属性,这种属性只有本对象可以访问,该类的其它对象不能访问。通过这种机制实现实例成员的隔离。
网友评论