每个类都有主构造器,主构造器的参数直接放在类名后面
class student(val name:String, var age:Int, gender:String, var id :Int = 18) {
// name has get func, age has get and set func, gender: private[this], even companion object cannot access, age may ignore when new
}
无参数也是主构造器
class student {
}
或者
class student() {
}
classstudent {
vars="we"
defa() = {
}
s="hah"
println(s)
}
objectstudentextendsApp{
valt=newstudent
}
会println “hah" 所以整个class中都是构造器都会执行
class student {
var name = _
def this(name:String) = {
this()
this.name = name
}
}
辅助构造器第一行要调主构造器
scala中的object就是单例的,一个进程只有一个
伴生对象,在scala的类中,与类名相同的对象。类和伴生对象之间可以互相访问私有方法和属性,与类在同一个文件中。但是private[this]不能访问
object分三种 singleton, app object,companion。
trait 相当于 interface,java8中interface可以定义的时候实现 ctrl + i
网友评论