Chinaunix首页 | 论坛 | 博客
  • 博客访问: 371559
  • 博文数量: 85
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 657
  • 用 户 组: 普通用户
  • 注册时间: 2013-07-17 20:48
个人简介

行到水穷处,坐看云起时

文章分类

全部博文(85)

文章存档

2019年(2)

2018年(1)

2016年(1)

2015年(66)

2014年(15)

我的朋友

分类: Java

2015-03-27 16:35:18

Scala中,class没有static类型变量,但是提供了单例的object。
object类型和class类型类似,不过没有构造函数。示例如下:

scala> object Demo {
     |  val n = 10
     |  def print = println("I'm Mr object Demo")
     | }

scala> Demo.n
res30: Int = 10

scala> Demo.print
I'm Mr object Demo

和class 同名的object 称为该class的伙伴object,该class称为object的伙伴class。class和它的伙伴object必须定义在同一个源代码文件中。
伙伴object和class可以访问对方的私有变量。示例如下:

scala> :paste
// Entering paste mode (ctrl-D to finish)

class Demo(private val a:Int,private val b:Int) {
  def test(){
    println(Demo.a)
  }
}
object Demo {
  private val a = 12
  def demoDetail(demo:Demo) = println("a="+demo.a+",b="+demo.b)
}

// Exiting paste mode, now interpreting.

defined class Demo
defined object Demo

scala> val demo = new Demo(1,2)
demo: Demo = Demo@778a408c

scala> demo.test
12

scala> Demo.demoDetail(demo)
a=1,b=2

参考自:
Programming Scala 2nd Edition

阅读(883) | 评论(0) | 转发(0) |
0

上一篇:Scala教程8 Class

下一篇:Scala教程10 Trait

给主人留下些什么吧!~~