scala-基础之apply用法-06

17 篇文章 0 订阅

创建:UsageOfApply.scala

package org.victor.scala.base

/**
  * Company: Huazhong University of science and technology
  * 华中科技大学电气学院聚变与等离子体研究所
  * Version: V1.0
  * Author: Victor
  * Contact: 1650996069@qq.com  2018--2020
  * Software: IntelliJ IDEA
  * File: UsageOfApply
  * Time: 2018/10/12 21:53
  * Desc:apply的使用
  **/
class UsageOfApply {

}

//做过Java开发都知道 main方法中的对象都是静态的,而scala object对象的方法都是静态方法

class ApplyTest{
  def test={
    println("ApplyTest-->Test.....")

    //Class中也可以有apply方法,其使用方法如下所示:
    def apply()= "the apply() is in class"
  }
}

object ApplyTest{

  var count = 0

  //看apply如何使用
  def apply(): ApplyTest = new ApplyTest

  def static={
    println("ApplyTest-->static......")
  }


  //由于 object中的方法和属性都是静态的,所以就是单例对象的理想载体了,示例代码如下:
  def increment: Unit ={
    count = count +1
    print(count+"  ")
  }

}


//App内部帮我们实现了main方法并管理工程师写的代码
object UsageOfApply extends App {
  ApplyTest.static

  //当 val applyTest = new ApplyTest() 会导致apply方法的调用并返回该方法调用的值,
  // 也就是ApplyTest的实例化对象
  val applyTest = new ApplyTest()
  applyTest.test

  //检测单例模式
  for(i <-1 to 100){
    ApplyTest.increment
  }
  println()
  println("ApplyTest.count="+ApplyTest.count)

}

object本身就是一个单例对象

=================================================================

结果:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值