Scala伴生类和伴生对象】的更多相关文章

单例对象与类同名时,这个单例对象被称为这个类的伴生对象,而这个类被称为这个单例对象的伴生类.伴生类和伴生对象要在同一个源文件中定义,伴生对象和伴生类可以互相访问其私有成员.不与伴生类同名的单例对象称为孤立对象. 看看例子: import scala.collection.mutable.Map class ChecksumAccumulator { private var sum = 0 def add(b: Byte) { sum += b } def checksum(): Int = ~(…
一.Hello World程序的执行原理 参考http://blog.csdn.net/zhangjg_blog/article/details/22760957 object HelloWorld{ def main(args : Array[String]){ println("HelloWorld") } } 以object关键字修饰的一个雷鸣,这种语法叫做孤立对象,这个对象是单例的.相当于将单例类和单例对象同时定义.(即这个类不能再创建一个实例,在类初始化的时候有., 就会创建…
所谓伴生对象, 也是一个Scala中的单例对象, 使用object关键字修饰. 除此之外, 还有一个使用class关键字定义的同名类, 这个类和单例对象存在于同一个文件中, 这个类就叫做这个单例对象的伴生类, 相对来说, 这个单例对象叫做伴生类的伴生对象. 举个栗子:object Companion { def show = println("I am a companion")} class Companion { def shout = Companion.show}(Compan…
类 / 对象 [<快学Scala>笔记] 一.类 1.Scala中的类是公有可见性的,且多个类可以包含在同一个源文件中: class Counter{ private var value = 0 //类成员变量必须初始化,否则报错 def increment(){ //类中的方法默认是公有可见性 value += 1 } def current() = value //对于类中的“取值方法”,在定义时可省略掉括号,直接 def current = value } Scala类的使用: Scal…
一.类的定义 Scala类的定义跟JAVA中类的定义基本是一样的. 示例 class ChecksumAccumulator{ var sum = 0;//Scala默认关键字为public private var sum = 0: def add(b : Byte) : Unit ={ sum+=b; } def checkSum() : Int = { return ~(sum & 0xFF) + 1; } } Scala中,当一个方法只会计算一个返回结果的表达式时,可以不用写花括号. Sc…
对象 Object,相当于class单个实例,通常在里面放一些静态的filed或method 第一次调用object方法时候,就会执行object的constructor,也就是Object中不在method中的代码,但是Object不能定义接收参数的constructor 注意,Object的constructor只会在第一次被调用的时执行一次,以后再次调用就不会执行construtctor了 object通常作为单例模式来实现,或者存放静态成员,例如: object Person{ priv…
对象 object 相当于 class 的单个实例,通常在里面放一些静态的 field 或者 method:在 Scala 中没有静态方法和静态字段,但是可以使用 object 这个语法结构来达到同样的目的.object 作用: 1.存放工具方法和常量 2.高效共享单个不可变的实例 3.单例模式 package com.zy.scala.cls class Session {} object SessionFactory { //该部分相当于 java 中的静态块 val session = n…
package cn.scala_base.oop.scalaobject import java.security.cert.Extension /** * object的构造器必须是无参的,且且构造器只会在第一次调用object时被调用 * 同一个scala文件下同名的object与class成为伴生对象与伴生类可以互访各自的私有field */ //伴生类 class Person { private var age: Int = 20; } //定义一个抽象类 abstract clas…
上一节中的单例对象MarkerFactory 就是一个独立对象的例子.尽管它管理着Marker类,但是它并没有关联到任何类上. scala也可以创建关联到类上的对象.这样的对象同类共享同一个名字,这样的对象称为伴生对象,对应的类就称为伴生类.在scala里,类和伴生对象没有界限,它们互相可以访问彼此的private 方法和private 属性.下面使用伴生对象重写了Marker: class Marker private(val color: String) { println("Creatin…
Scala没有静态方法和静态字段, 你可以用object这个语法结构来达到同样的目的. 对象的构造器只有在第一次被使用时才调用. 伴生对象apply方法: 类和它的伴生对象可以互相访问私有特性,他们必须存在于同一个源文件. 类中要访问类的伴生对象中成员,需要通过类.成员调用. class Account private (val id: Int, initialBalance: Double){ } object Account { def apply(initialBalance: Doubl…