[scala] scala 对象(六)】的更多相关文章

一.对象 1.object object,相当于class的单个实例,通常在里面放一些静态的field或者method,第一次调用object的方法时,就会执行object的constructor, 也就是object内部不在method中的代码,但是object不能定义接受参数的constructor. object的constructor只会在其第一次被调用时执行一次, 以后再次调用就不会再次执行constructor了. object通常用于作为单例模式的实现,或者放class的静态成员,…
这一章主要是以定义和完善一个有理数类Rational为线索,分析和介绍有关类定义,构造函数,方法重写,变量定义和私有化,以及对操作符的定义等. 一.Rational类定义和构造函数 1.定义一个空类 class Rational(n: Int, d: Int) 如果一个class没有函数体时,可以不用写花括号,上面的代码是最简形式.圆括号中的n和d是类参数,Scala编译器会根据这两个类参数,为该类生成一个对应的包含两个参数的主构造函数. 在文本编辑器中输入以上代码后,保存为Rational.s…
Rational 的式样书 分数:rational number 是一种可以表达为比率 d n 的数字,这里的 n 和 d 是数字,其中 d 不能为零.n 被称作是分子:numerator,d 被称作是分母:denominator.分数的例子 有: 2/1 , 3/2 , 239/112 和 1/2 . 本章我们将要设计的类必须模型化数的行为,包括允许它们执行加,减,乘还有除运算. 一个,或许不怎么重要的,发现是数学上,分数不具有可变的状态.一个分数加到另外一 个分数上,产生的结果是一个新的分数…
1.单例对象和伴生对象 2.定义单利对象的apply方法可不通过构造器直接创建对象 3.extends 来扩展单例对象 4.枚举实现 /** * 单例对象 * * @author xuejz * @date 2017-04-13 16:41 * @since 1.8 */ //单例对象 class Parent extends Action(12){ //调用伴生对象的无参方法 val pson =if(Parent.son==0) 1 else Parent.newSon val son=0…
一.List字面量 List 是 Scala 中非常重要的一个数据结构,其与 Array(数组) 非常类似,但是 List 是不可变的,和 Java 中的 List 一样,其底层实现是链表. scala> val list = List("hadoop", "spark", "storm") list: List[String] = List(hadoop, spark, storm) // List 是不可变 scala> list…
一.本章要点 XML字面量<like>this</like>的类型为NodeSeq 可以在XML字面量中内嵌Scala代码 Node的child属性产出后代节点 Node的attributes属性产出包含节点属性的MetaData对象 \和\\操作符执行类Xpath匹配 可以在case语句中使用XML字面量匹配节点模式 使用带有RewriteRule示例的RuleTransformer来变换某个节点的后代 XML对象利用Java的XML相关方法实现XML文件的加载和保存 Const…
package com.test.scala.test /** * 伴生对象指的是在类中建立一个object */ class AssociatedObject { private var count:Int=AssociatedObj.increateNumber; } object AssociatedObj{ private var number=0; def increateNumber={number+=1;number} } 看着代码想睡觉…
Scala Object: scala没有静态的修饰符,例如Java中的static.但是Scala提供了Object类型,object下的成员都是静态的,比较像Java的静态类.不同在于Scala的Object(包括其中定义的属性和方法)只有在第一次被访问的时候才会初始化. 若有同名的class,则该Class是对应Object的伴生类,称该Object是对应Class的伴生对象.在Object中一般可以为伴生类做一些初始化等操作,该类可以访问Object中的所有成员,包括Private成员.…
有理数类的表示 实现规范:支持有理数的加减乘除,并支持有理数的规范表示 1.定义Rational 首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我们需要用户在定义Rational对象时提供分子和分母. class Rational(n:Int, d:Int) 可以看到,和Java不同的是,Scala的类定义可以有参数,称为类参数,如上面的n.d.Scala使用类参数,并把类定义和主构造函数合并在一起,在定义类的同时也定义了类的主构造函数.因此…