1.Scala中没有静态类,静态方法,静态方法。但是Scala中提供了Object对象,
Object类中的属性,方法,都是静态的
package
com.jn.scala.oop
/**
* @author jiangning
*/
object
Counter
{
private
var
lastNumber
=
0
def
newUniqueNumber
={
lastNumber
+=
1
lastNumber
}
}
object
ObjectOps
{
def
main
(
args
: Array[
String
]){
println
(
Counter
.
newUniqueNumber
)
println
(
Counter
.
newUniqueNumber
)
}
}
第一次使用的时候才会执行,
不是加载进来就执行。
作用:
(1)作为存放工具函数或常量的地方
(2)高效地共享单个不可变实例
(3)需要用单个实例来协调某个服务时,(单例模式)
2.伴生对象
package
com.jn.scala.oop
/**
* @author jiangning
*/
class
Counter{
var
id
=
Counter
.
newUniqueNumber
private
val
number
=
0
}
object
Counter
{
private
var
lastNumber
=
0
def
newUniqueNumber
={
lastNumber
+=
1
lastNumber
}
}
object
ObjectOps
{
def
main
(
args
: Array[
String
]){
println
(
Counter
.
newUniqueNumber
)
println
(
Counter
.
newUniqueNumber
)
}
}
Counter类的伴生对象object Counter,类可以访问他所有的成员,包括伴生对象的private属性,相互访问私有对象,他们必须存在同一个源文件中。