Scala(四):对象】的更多相关文章

Netty4.x中文教程系列(四)  对象传输 我们在使用netty的过程中肯定会遇到传输对象的情况,Netty4通过ObjectEncoder和ObjectDecoder来支持. 首先我们定义一个User对象,一定要实现Serializable接口: package mjorcen.netty.object; import java.io.Serializable; /** * User: hupeng Date: 14-6-3 Time: 上午1:31 */ public class Use…
对象:Object 1.单例对象 2.伴生对象 3.扩展类或特质的对象 4.apply方法 5.应用程序对象 6.枚举1.单例对象 Scala中没有你静态方法或静态字段,可以用object这个语法结构来实现这个目的.对象定义某个类的单个实例,包含了你想要的特性 object ObjectOps { private var lastNumber = 0 def newUniqueNumber() = {lastNumber+=1;lastNumber} /* *对象的构造器在该对象第一次被使用时调…
一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInputStream 对以前使用 ObjectOutputStream 写入的基本数据和对象进行反序列化. ObjectOutputStream 和 ObjectInputStream 分别与 FileOutputStream 和 FileInputStream 一起使用时,可以为应用程序提供对对象图形的…
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成员.…
一.List var x = List(1,2,3,4) //x:List[Int] = List(1, 2, 3, 4) var y = List("x","y","z") //y: List[String] = List(x, y, z) 0 :: x //res6: List[Int] = List(0, 1, 2, 3, 4) x ::: y //List[Any] = List(1, 2, 3, 4, x, y, z) scala>…
有理数类的表示 实现规范:支持有理数的加减乘除,并支持有理数的规范表示 1.定义Rational 首先,考虑用户如何使用这个类,我们已经决定使用“Immutable”方式来使用Rational对象,我们需要用户在定义Rational对象时提供分子和分母. class Rational(n:Int, d:Int) 可以看到,和Java不同的是,Scala的类定义可以有参数,称为类参数,如上面的n.d.Scala使用类参数,并把类定义和主构造函数合并在一起,在定义类的同时也定义了类的主构造函数.因此…
Java提供JavaBean作为数据对象的封装, 而对于Scala来说也提供了同样的支持. class Apple { var weight: Float = _ var color: String = _ } Scala无需向JavaBean那样显示的声明 getter和setter , 只需将变量声明为var就可以了, getter方法 weight , setter方法为 weight_= ; 同时, 在JavaBean中的变量可以不用初始化, 但是在Scala中需要初始化为_, _的具体…
一.对象 1.object object,相当于class的单个实例,通常在里面放一些静态的field或者method,第一次调用object的方法时,就会执行object的constructor, 也就是object内部不在method中的代码,但是object不能定义接受参数的constructor. object的constructor只会在其第一次被调用时执行一次, 以后再次调用就不会再次执行constructor了. object通常用于作为单例模式的实现,或者放class的静态成员,…
package scala_enhance.scalaextends import scala.collection.mutable.HashMap /** * scala中判断对象相等 * 原则: * 如果两个对象相等,那么其hashcode必定相同,所以重写equals方法,要重写hashcode(默认情况下hashcode是根据内存地址计算出来的值) * 但如果hashcode相同(即使用 == 比较为true),却不能证明他们相等 * 关于重写equals为什么需要重写hashCode请…