scala类:
scala中类定义里,可以放置字段和方法,这些被统称为成员(memeber)
所有成员默认是共有的,如java中默认带public一样
scala中不能定义静态成员,但是可以定义单例对象,用法java的static成员用法一样,对象名.成员。
如果定义的一个class A与object A并且他们在同一个文件里面他们就是伴生关系(singleton)class A是 object A的伴生类,反过来object A是class A的伴生对象,他们可以相互访问对方的私有成员
scala中的构造器有一个主构造器和多个副构造器,组构造器是在创建class A类的时候就已经定义了,如果让主构造器new 的时候就带参数就class A(val name : String){ }必须要带上val或var,不然他不会生成对应成员,只是当做一个val的构造器参数。
如果成员加上@BeanProperty 注解 如:@BeanProperty var name : String = "" scala会默认的给他生成getName和setName这2个方法。
如果想让主构造器变成私有的可以class A private (val name : String){ this(){this("name")} } 这样用户只能调用副构造器来构造A对象了。主构造器是有参构造,副构造器是无参构造。
scala中的嵌套类的创建方式 new 外部类.嵌套类,java中的内部类的创建方式 new 外部类().new 内部类();并且在scala在使用嵌套类的时候他的类型是为外部类.嵌套类(如类型为 my.foot 或 her.foot)表示这个我的脚与她的脚是不通的类型。
scala中的类型投影:val a = new ArrayBuffer[Network#Member] 其含义是“任何Network的Member”