代码改变世界

Scala类基础

2014-08-29 18:31  Rollen Holt  阅读(672)  评论(0)    收藏  举报

最近在开始学习Scala,本篇文章我们来讲解一下Scala中类的使用

class Counter {
var defaultValue = 0
val valValue = 0
private var privateValue = 0
private[this] var value = 0

def increment(): Unit = {
value += 1
}

def current(): Int = {
value
}

def current1(): Int = value

def current2: Int = value

}

object Counter {

def main(args: Array[String]) {
val counter: Counter = new Counter
println(counter.current())
println(counter.current1())
println(counter.current2) //不能采用counter.current2()方式调用
}
}

上面的例子就是一个Scala中的类的一般写法。

有几个需要注意的点:

  • Scala中方法默认都是公有的
  • 必须初始化Scala类中的字段
  • 在Scala中,类并不声明为public, Scala源文件可以包含多个类,并且这些类都具有公共可见性

我们也可以自己定义getter和setter方法:

package com.rollenholt.showcase.scala.clazz

class Counter {
private var defaultValue:Int = 0

def value = defaultValue

def value_= (newValue: Int): Unit ={
if(newValue == 1){
defaultValue = 2
}
}

}

object Counter {

def main(args: Array[String]) {
val counter: Counter = new Counter
println(counter.value)
counter.value = 1
println(counter.value)
counter.value = 2
println(counter.value)
}
}

输出

0
2
2