Scala学习第八天 Scala主构造器、私有构造器、构造器重载实战详解

信息来源于 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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值