查看: 156|回复: 0

[教程] 浅谈Scala的Class、Object和Apply()方法

[复制链接]

5

主题

0

回帖

0

积分

热心网友

金币
0
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2010-6-11
发表于 2017-5-25 09:27:35 | 显示全部楼层 |阅读模式

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()方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持琼殿技术社区。

您可能感兴趣的文章:
  • Scala解析Json字符串的实例详解
  • Scala小程序详解及实例代码
  • Windows7下安装Scala 2.9.2教程
  • PHP警告Cannot use a scalar value as an array的解决方法
  • php下关于Cannot use a scalar value as an array的解决办法
  • ExecuteReader(),ExecuteNonQuery(),ExecuteScalar(),ExecuteXmlReader()之间的区别
  • scala中停止循环的三种方式(推荐)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部