单例对象
Scala语言是 完全面向对象 的语言,所以 没有 静态 概念
但是Java有静态概念(如:静态属性、静态方法),scala为了和Java语言交互,提供 object 对象 ,其 属性、方法 默认是静态的,该对象为 单例对象
语法
单例对象采用 object 关键字声明,其余写法与定义类相同
object 对象名{
val 属性:类型=值
def 方法名(形参列表):返回类型 = {
}
}
例子
object Person{
val name:String="lucy"
def main(args: Array[String]): Unit = {
println("123")
}
}
解释:
直接创建一个 单例对象
可以有
main()入口方法
反编译
下图红框处,创建单例对象
伴生对象
如果 object 对象名 与 类名 一样,将 该object对象 称为该类的 伴生对象,相对应,将该类 称为 该object对象 的 伴生类
在伴生类中,可以通过 名字 访问伴生对象的 所有属性、方法
class Phone(var cpu:String) {
def call(num:String):Unit = {
//通过名字访问伴生对象的属性。相当于java中访问静态属性
println(s"用 ${Phone.name} - $cpu 给 $num 打电话")
Phone.about() //通过名字访问伴生对象的方法。相当于java中调用静态方法
}
}
object Phone {
var name:String = "iphone15" //相当于java中的静态属性
def about():Unit = { // 相当于java中的静态方法
println("关于信息。。。")
}
}
object test{
def main(args: Array[String]): Unit = {
val phone:Phone = new Phone("A100")
phone.call("110")
}
}
