• Scala单例对象和伴生对象


    1、Scala单例对象 
    Scala单例对象是十分重要的,没有像在Java一样,有静态类、静态成员、静态方法,但是Scala提供了object对象,这个object对象类似于Java的静态类,它的成员、它的方法都默认是静态的。

    如果object的静态成员要被外界访问,则该成员不能被private修饰

    2、Scala伴生对象 
    如果有同样一个类与该object名字一样,则称该object为该类的伴生对象,相对应,该类为object的伴生类。

    如果一个类有它的伴生对象,这个类就可通过object的名字访问到所有成员,但object不在该类的作用范围。

     

    经典伴生对象和伴生类实现demo

    /**
      * Created by root
      * Description : 伴生对象和伴生类
      *
      * 伴生类ObjectAndClassTest的构造函数定义为private,虽然这不是必须的,却可以有效防止外部实例化ObjectAndClassTest类,使得ObjectAndClassTest类只能供对应伴生对象使用;
      * 每个类都可以有伴生对象,伴生类与伴生对象写在同一个文件中;
      * 在伴生类中,可以访问伴生对象的private字段ObjectAndClassTest.specialty
      * 而在伴生对象中,也可以访问伴生类的private方法:objectAndClassTest.getSpecialtyName()
      * 最后,在外部不用实例化,直接通过伴生对象访问方法:ObjectAndClassTest.printSpectalty()
      *
      */
    class  ObjectAndClassTest private(val name:String) {
    
      private def getSpecialtyName() = "name = " + name + ";specialty = " + ObjectAndClassTest.specialty
    }
    
    object ObjectAndClassTest{
        private val specialty = "software development"
        private val objectAndClassTest = new ObjectAndClassTest("xiaoming")
        def printSpectalty() = println(objectAndClassTest.getSpecialtyName())
    
    }
    
    
    object Test{
      def main(args: Array[String]): Unit = {
        ObjectAndClassTest.printSpectalty()
      }
    }
  • 相关阅读:
    使用JNI技术实现JAVA程序调用dll
    vim 技巧集
    Powershell: 计算机硬盘扩容
    jira:3、API 调用 (jira insight)
    Jira: 1、服务器搭建(测试环境)
    Powershell :AD 域操作之OU 导出、创建、 用户导出、创建、移动OU
    jira :数据库配置要求
    powershell:定期删除指定目录的文件
    Jira:2、创建API 访问Token
    证书:常见操作记录
  • 原文地址:https://www.cnblogs.com/xubiao/p/7998522.html
Copyright © 2020-2023  润新知