天天看点

Scala 中伴生类与伴生对象定义:实现类似 Java 中那种既有实例成员又有静态成员的类的功能。

定义:实现类似 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")//使用类名.成员变量
  }
}
           

 伴生对象这种存在最大的特点:

  1. 可以实现类似Java中那样,在同一个类里既有实例成员又有静态成员的功能。
  2. 可以访问对方的 private变量及方法。访问私有属性的一个小示例如下
    //原生类
    class student {
     private var name = ""
      var age = ""
      student.getName//使用类名.方法 相互访问
    }
    
    //伴生类
    object  student{
      private def getName(): Unit ={
        println(s"$student.name")//使用类名.成员变量
      }
    }