• Scala 面向对象(七):静态属性和静态方法


    1 Scala中静态的概念-伴生对象

    Scala语言是完全面向对象(万物皆对象)的语言,所以并没有静态的操作(即在Scala中没有静态的概念)。

    但是为了能够和Java语言交互(因为Java中有静态概念),就产生了一种特殊的对象来模拟类对象,我们称之为类的伴生对象

    这个类的所有静态内容都可以放置在它的伴生对象中声明和调用

    伴生对象的快速入门

    伴生对象的小结

    1)Scala中伴生对象采用object关键字声明,伴生对象中声明的全是 "静态"内容,可以通过伴生对象名称直接调用。

    2)伴生对象对应的类称之为伴生类,伴生对象的名称应该和伴生类名一致。

    3)伴生对象中的属性和方法都可以通过伴生对象名(类名)直接调用访问

    4)从语法角度来讲,所谓的伴生对象其实就是类的静态方法和成员的集合

    5)从技术角度来讲,scala还是没有生成静态的内容,只不过是将伴生对象生成了一个新的类,实现属性和方法的调用。

    6)从底层原理看,伴生对象实现静态特性是依赖于 public static final MODULE$ 实现的。

    7)伴生对象的声明应该和伴生类的声明在同一个源码文件中(如果不在同一个文件中会运行错误!),但是如果没有伴生类,也就没有所谓的伴生对象了,所以放在哪里就无所谓了。

    8)如果 class A 独立存在,那么A就是一个类, 如果 object A 独立存在,那么A就是一个"静态"性质的对象[即类对象], 在 object A中声明的属性和方法可以通过 A.属性 和 A.方法 来实现调用

    9)当一个文件中,存在伴生类和伴生对象时,文件的图标会发生变化

    伴生对象-apply方法

    在伴生对象中定义apply方法 ,可以实现: 类名(参数) 方式来创建对象实例.

  • 相关阅读:
    【Java123】JDBC数据库连接池建立
    【招聘123】Some good open positions
    [Java123]Gradle
    4_3:流程控制:循环练习
    4_3:流程控制:while + do while + continue + break
    4_2:流程控制:[ for循环 ] + 断点调试
    4_1:流程控制:分支结构:[ if else ] + [ 三元表达式 ] + [ switch case ]
    3:运算符 + 运算符优先级 [ 逻辑短路 ]
    2_3:变量:[ 类型之间转换 ]
    2_2:变量:[ 五种简单数据类型 ]
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13262676.html
Copyright © 2020-2023  润新知