zoukankan      html  css  js  c++  java
  • 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方法 ,可以实现: 类名(参数) 方式来创建对象实例.

  • 相关阅读:
    剑指offer——最小的K个数和数组中第K大的元素
    Leetcode刷题指南链接整理
    160. Intersection of Two Linked Lists
    100. Same Tree
    92. Reverse Linked List II
    94. Binary Tree Inorder Traversal
    79. Word Search
    78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
    0x16 Tire之最大的异或对
    0x16 Tire
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13262676.html
Copyright © 2011-2022 走看看