没有静态变量和静态方法,Scala中采用伴生对象来顶替静态操作

用Java作例子

  1. public class Person{
  2. // 伴生类
  3. private String name;
  4. public void say(){
  5. Person.Country
  6. }
  7. // 伴生对象
  8. public static final String Country = "中国"
  9. public static void run(){
  10. }
  11. }

1.单例对象语法

1.1 说明

  1. - object关键字声明
  2. - 伴生对象和伴生类的名称要一致
  3. - 访问伴生对象的属性和方法,直接用对象名.属性/方法直接调用
  1. object Person{
  2. val name:String = "zs"
  3. }
  4. class Person{
  5. def xixi(){
  6. println(Person.name)
  7. }
  8. }

1.2 主构造器私有化

  1. class Person private(){
  2. }
  3. object Person{
  4. }

2.apply方法

  1. class Teacher private(var name:String){ //私有主构造器
  2. }
  3. object Teacher{
  4. def apply(name:String): Teacher ={ // 静态方法-提供单例对象
  5. new Teacher(name)
  6. }
  7. }
  8. object Test03_Demo {
  9. def main(args: Array[String]): Unit = {
  10. var t = Teacher("zs")
  11. println(t.name)
  12. }
  13. }