Spark(14)-Scala-apply与update(简述)

apply方法

代码示例1(apply方法)

1、定义一个apply方法,返回值

2、进行实例化,不可变的myObject ,前面说过凡是类没有参数的话,可以不加括号,TestApplyClass就是一个。直接生成一个实例。

3、传递参数param1

执行结果:

 

 因此证明了,采用这种方式传递一个参数时,确实会默认调用已经定义好的apply方法。

我们myObject就是一个变量,对myObject这个变量我们使用括号传递一个字符串类型的参数param1,这时候会自动生成对apply 方法的调用,打印后续结果。

代码示例2(调用apply)

1、声明一个简单的单例对象,单例对象不需要额外声明类的,它自己本身就可以定义相关的方法。

2、传递了两个参数,方法体中打印并连接两个参数

3、声明一个不可变的group对象(变量),对单例对象不需要new,直接就可以用单例对象名称,括号可直接传递参数

执行结果:

apply方法最后的返回值是String类型,表达式的group值是zhangfei anf Liubei,是通过表达式连接起来作为返回值返回来的。

返回来后,赋予了group.

总结:

我们通过单例对象的名称()传递参数时,也会自动调用appy方法。

代码示例3(调用伴生类)

例3告诉我:到底什么时候调用伴生类

 

1、上面的代码时将伴生类和伴生对象放在一起,注意类和对象同名是才能叫做伴生类和伴生对象,上面例子中有两对伴生类和伴生对象。

2、注意 伴生对象  入口函数main方法中,val a = ApplyTest()  ,直接调用名称()不需要new,注意这里调用的是伴生对象中的方法。

而我们在使用new关键字生成实例,再用实例去调用时才会调用伴生类中的apply方法。

因此这里调用后打印的结果为下面的红色

 3、而执行a.greetingOfClass,生成的变量a,是既可以访问伴生类中的对象也可以访问伴生对象中方法,所以这里面访问的是伴生类中的greetingOfClass中的方法,并打印出来

4、对于a()来讲,a已经生成了实例对象,对实例对象加()才会去调用伴生类中apply的方法!!

再来一遍:什么时候直接调用伴生类中的方法,只有先用new关键字new一下生成实例;或者像此例一样已经生成了一个实例a,a加一个圆括号(),此时才会调用伴生类中的方法。

代码示例4(数组的由来)

此例解释了为什么在scala编程时,直接这么写就可以直接生成一个数组,这是他的理由

 代码示例5update方法(数组赋值用圆括号表示)

 1、此代码解释了为什么在给数组赋值时会用圆括号来表示,java用[]

 下面代码中括号中参数为0,等号右边的对象“bigdata”,将这两个参数作为update方法的输入参数来执行调用。默认调用update中的方法完成更新。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值