时间:2021-05-19
Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类。Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了Static修饰符的成员和方法。Class和Object都可以定义自己的Apply()方法,类名()调用Object下的Apply()方法,变量名()调用Class下的Apply()方法。
class ApplyTest{ def apply() { println("This is a class, apply()...") }}object ApplyTest{ def apply() = { println("This is an object, apply()...") new ApplyTest() }}object ApplyExample { def main(args: Array[String]) { var at=ApplyTest() at() }}运行结果:
分析:
var at=ApplyTest()这是类名(),调用的是Object下的Apply()方法,由于此时并没有创建类的对象,所以也只能调用Object下的静态方法。
new ApplyTest()创建了一个类的对象,并且返回给了变量at。
at()这是变量名(),显然调用的是Class的Apply()方法。
以上这篇浅谈Scala的Class、Object和Apply()方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Scala的环境搭建由于scala是基于java来开发的,编写的java类可以使用javac命令编译成.class文件被JVM加载到内存中执行!那么scala可
一、前言前面学习了Scala的Methods,接着学习Scala中的Object二、ObjectObject在Scala有两种含义,在Java中,其代表一个类的
你可以直接看例子,也可以先读一下介绍:call和apply是为了动态改变this而出现的,当一个object没有某个方法,但是其他的有,我们可以借助call或a
复制代码代码如下:functionstd_class_object_to_array($stdclassobject){$_array=is_object($s
总结之前的内容,对象(object)指代某一事物,类(class)指代象的类型。对象可以有状态和动作,即数据成员和方法。到现在为止,数据成员和方法都是同时开放给