信息来源于 DT大数据梦工厂微信公众账号:DT_Spark
DT大数据梦工厂群号:302306504王家林老师微信号:wangjialinandroid
内容:
1、Scala主构造器
2、构造器重载
3、私有构造器
一、Scala主构造器&构造器重载
(1)无参的主构造器
//定义Teacher类时,有个默认构造器Teacher(),是其主构造器,其他所有构造器都是他的重载构造器,任何一个重载构造器必须直接或间接调用主构造器
class Teacher {
var name : Sting = _
private var age 27
private[this] val gender = "male"
def this(name : String){
this
this.name = name
}
def sayHello{
println(this.name +":" + this.age + ":" + this.gender)
}
}
object OOPInScala{
def main(args: Array[String]{
Val p = new Teacher //使用主构造器
p.name="Spark"
p.sayHello
}
(2)有参的类构造器
class Teacher(val name : String,val age : Int){
println("This is the primary constructor!!!")
var gender : String = _
println(gender)
def this(name : String,age : Int,gender : String){
this(name,age)
this.gender = gender
}
}
def main(args: Array[String]{
Val p = new Teacher("Spark",5)//使用主构造器
println(":"+p.age)
val p=new Teacher("Spark",5,"mail") //使用重载构造器
println(":"+p.age)
}
二、私有构造器
//有时候,为了不想使用者使用默认构造器,我们可以将类的主构造器设为private
class Teacher private(val name : String,val age : Int){
println("This is the primary constructor!!!")
var gender : String =_
println(gender)
def this(name : String,age : Int,gender : String){
this(name,age)
this.gender = gender
}
}
object OOPInScala{
def main(args: Array[String]{
val p = new Teacher("Spark",5)//这时候使用主构造器就会报错,类的主构造器为私有,不能被调用
println(":"+p.age)
val p=new Teacher("Spark",5,"mail") //使用重载构造器
println(":"+p.age)
}
Scala 深入浅出实战经典(1-64讲)完整视频、PPT、代码下载:
百度云盘:http://pan.baidu.com/s/1c0noOt6
腾讯微云:http://url.cn/TnGbdC
360云盘:http://yunpan.cn/cQ4c2UALDjSKy 访问密码 45e2
Scala视频及其更新和其他资料(Spark公开课、安卓基础、移动互联网)下载:
百度云盘:http://pan.baidu.com/share/home?uk=4013289088&view=share#category/type=0