zoukankan      html  css  js  c++  java
  • 伴生类和伴生对象

    // 伴生对象
    object Ass{}
    
    // 伴生类
    class Ass{}
    

    要求: 伴生类和伴生对象要在同一个.scala文件并且名字相同

    Java的静态成员和非静态成员都写在一个类里. 而scala静态成员需要写写在伴生对象里面.

    伴生类需要用 new 来创建,而伴生对象不用new.

    使用伴生对象创建伴生类的实例需要定义apply()方法

    package base
    
    
    object runDM {
      def main(args: Array[String]): Unit = {
    
        //    // Array的伴生类和伴生对象
        //    // 伴生类方式创建
        //    val arrC = new Array[Int](5)
        //    // 伴生对象方式创建
        //    val arrO = Array[Int](5)
    
        // new 创建Ass类
        val assC = new Ass("new create!")
        // 使用伴生对象隐式使用apply方法创建 Ass类对象
        val assO = Ass("create!")
    
        println(assC.getName)
        println(assO.getName)
    
      }
    }
    
    // Ass类的伴生对象
    object Ass {
    
      // 静态方法
      def show(): Unit = {
        println("Object Ass!")
      }
    
      // apply方法需要 (), 类似于Ass类的构造器
      def apply(): Ass = new Ass()
    
      def apply(name: String): Ass = new Ass(name)
    
    }
    
    // Ass object的伴生类
    class Ass {
    
      private var name: String = _
    
      def this(name: String) {
        this()
        this.name = name
      }
    
      def getName: String = this.name
    
    }
    
  • 相关阅读:
    2020暑假牛客多校9 B
    2020暑假牛客多校10 C -Decrement on the Tree (边权转点权处理)
    HDU 5876 补图的最短路
    CSP初赛复习
    遗传算法
    排列组合
    和式 sigma的使用
    多项式的各种操作
    三分
    NOIP2018普及游记
  • 原文地址:https://www.cnblogs.com/studyNotesSL/p/11443779.html
Copyright © 2011-2022 走看看