scala学习之路:8.staticObject与伴生类伴生对象

class  University {
  val id = University.newStudentNo  // 访问自己的伴生对象的成员名称:newStudentNo需要添加半生对象名称
  private var number = 0
  def aClass (number : Int ) {this.number += number}
  
}
// 只有在第一次使用的时候才执行  这里会调用默认的构造器 没有参数
//这里的 University 是 class University的半生对象 这个类可以访问半生对象的成员 
//包括私有的成员 必须加上半生对象的名称以及变量  
//同理   class University 是 University的伴生类
object University {  // 静态方法区  ,或者公共变量区 
 
  private var  studentNo = 0
   def newStudentNo = { //   此处静态成员或者是静态方法不能用 private 修饰 
    studentNo += 1  //  把私有的 变量+1
    studentNo         // scala中最后一行就是返回内容
  }
}

object dt03ObjectStatic {
  
  def main(args: Array[String]): Unit = {
    println(University.newStudentNo)
    println(University.newStudentNo)
    
    
//    这也是 半生对象的使用
    val arra = Array(1,3,5,78,9)
    
  }
}


apply使用:

class ApplyOperation {

}
class ApplyTest {
  def apply() = println("I am into spark so much !!!")

  def haveATry {
    println("Hava a try on apply!")
  }
}

object ApplyTest {
  def apply() = {
    println("I am into Scala so much !!!")
    new ApplyTest
  }

}

object ApplyOperation extends App {

  //          val a = ApplyTest() //I am into Scala so much !!!
  //          a.haveATry          //Hava a try on apply!

  //     先经过伴生对象的 apply 方法  
  val apl = new ApplyTest

  apl.haveATry

  apl.apply() //这三句打印结果一样 
  apl()
  println(apl()) // 不加()就是打印对象的地址了 点击鼠标跳转到 class ApplyTest

}



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值