定义:实现类似 Java 中那种既有实例成员又有静态成员的类的功能。
为什么会存在伴生类?原因是在scala语法中,去掉了static关键字,不能像JAVA中一样,将成员变量和成员方法使用static修饰,是其成为静态方法和静态成员变量。但是在scala中,又确实需要这样的方式。所以,在scala中,就出现了伴生类的概念。如何定义一个伴生类呢?
1、定义一个 class 并在这里面实现所有的实例成员。 2、添加一个 object ,这个 object 要与上面的 class同名,然后在这里面实现所有的静态成员。 3、定义的 class 与 object 必须在同一个文件内 |
//原生类
class student {
private var name = ""
var age = ""
student.getName//使用类名.方法 相互访问
}
//伴生类
object student{
private def getName(): Unit ={
println(s"$student.name")//使用类名.成员变量
}
}
伴生对象这种存在最大的特点:
- 可以实现类似Java中那样,在同一个类里既有实例成员又有静态成员的功能。
- 可以访问对方的 private变量及方法。访问私有属性的一个小示例如下
//原生类 class student { private var name = "" var age = "" student.getName//使用类名.方法 相互访问 } //伴生类 object student{ private def getName(): Unit ={ println(s"$student.name")//使用类名.成员变量 } }