zoukankan      html  css  js  c++  java
  • Scala的Class、Object和Apply()方法

    Scala中如果一个Class和一个Object同名,则称Class是Object的伴生类。Scala没有Java的Static修饰符,Object下的成员和方法都是静态的,类似于Java里面加了Static修饰符的成员和方法。Class和Object都可以定义自己的Apply()方法,类名()调用Object下的Apply()方法,变量名()调用Class下的Apply()方法。

    class ApplyTest{
      def apply()  {
        println("This is a class, apply()...")
      }
    }
    
    object ApplyTest{
      def apply() = {
        println("This is an object, apply()...")
        new ApplyTest()
      }
    }
    
    object ApplyExample {
      def main(args: Array[String]) {
        var at=ApplyTest()
        at()
      }
    }

    运行结果:

    分析:

    var at=ApplyTest()

    这是类名(),调用的是Object下的Apply()方法,由于此时并没有创建类的对象,所以也只能调用Object下的静态方法。

    new ApplyTest()

    创建了一个类的对象,并且返回给了变量at。

    at()

    这是变量名(),显然调用的是Class的Apply()方法。

  • 相关阅读:
    原生JS实现简易随机点名功能
    react 字父组件传值
    关于react组件传值问题
    轮波图
    烟花
    this的详解
    封装多元素多属性的链式缓冲
    留言板设计的流程,拖动窗口
    运动的小球
    运动的小球自动变键盘控制
  • 原文地址:https://www.cnblogs.com/mstk/p/6899024.html
Copyright © 2011-2022 走看看