• Scala面向对象


    一、类和接口

    • scala定义的类和class一样,都是class
    • scala中的对象是需要定义的,而java中的对象是通过class new出来的,
    • scala中的接口是称为trait 、java中的接口时interface
    • scala中无论继承类还是trait统一都是使用extends这个关键字,类继承trait后,必须实现trait中的抽象方法,实现时候不需要使用override
    • scala不支持对类多继承,但是支持对trait进行多重继承,使用with关键字即可
    • scala中的main方法,只能定义在object中,不能继承在class中

     

    二、构造函数

    Scala类中的构造函数可以分为主构造函数和辅助构造函数

    主constructor:类似Java的默认构造函数 this(),Scala的主constructor是与类名放在一起的

    辅助constructor:类似Java的重载构造函数 this(name,age),可以给类定义多个辅助constructor,辅助constructor之间可以互相调用,但是第一行必须调用主constructor

     

     三、对象

    • object:相当于class的单个实例,通常在里面放一些静态的field或者method
    • object不能定义带参数的constructor,只有空参的constructor
    • 第一次调用object的方法时,会执行object的constructor,空参的constructor。 但是注意,object的constructor的代码只会在他第一次被调用时执行一次,以后再次调用就不会再执行 了
    • object通常用于作为单例模式的实现,或者放class的一些静态成员,比如工具方法 object可以直接使用,不能new 创建一个object,使用object关键字

    伴生类和伴生对象

    • 如果有一个class,还有一个与class同名的object,那么就称这个object是class的 伴生对象 ,class是 object的 伴生类
    • 伴生类和伴生对象必须存放在一个.scala文件之中
    • 伴生类和伴生对象最大特点在于可以互相访问private field

     

  • 相关阅读:
    MySQL数据库
    Docker之介绍与安装
    排序(十多种排序)
    【HTML+CSS】零碎知识点
    聊聊MySQL存储过程
    prometheus + grafana进行服务器资源监控
    【计算机视觉40例】案例35:人脸对齐
    Appium切换Android设备输入法, 以及回车按键操作
    Claude 使用指南 | 可与GPT-4媲美的语言模型
    【设计模式】C++单例模式详解
  • 原文地址:https://blog.csdn.net/libaowen609/article/details/126361604