Scala的Class、Object和Apply()方法
2017-05-24 15:08
337 查看
Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类。Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了Static修饰符的成员和方法。Class和Object都可以定义自己的Apply()方法,类名()调用Object下的Apply()方法,变量名()调用Class下的Apply()方法。
运行结果:
分析:
这是类名(),调用的是Object下的Apply()方法,由于此时并没有创建类的对象,所以也只能调用Object下的静态方法。
创建了一个类的对象,并且返回给了变量at。
这是变量名(),显然调用的是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()方法
- class与object的区别和使用方法[scala]
- scala学习7--class、object、trait
- Scala学习笔记--apply 方法详解
- scala学习笔记4(apply方法)
- 【scala初学】class , object ,case classes
- scala中main方法必须放在object中
- scala:Object与Class的区别
- Scala中的伴生对象apply方法和单例对象
- Scala_apply方法详解
- scala学习7--class、object、trait
- scala中的class、object和trait的区别
- scala 学习:object 和class, trait
- scala中的apply方法与unapply方法
- scala object 转Class Scala强制 类型转换
- linux下scala脚本运行报错error: expected class or object definition 解决方案
- HashMap.comparableClassFor(Object x)方法解读:类型/泛型相关方法
- scala class和object,trait的区别
- Case class和Case object代码实战解析之Scala学习笔记-20
- scala学习笔记4(apply方法)