版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011890101/article/details/84939307
scala学习笔记-伴生对象与伴生类
伴生对象与伴生类的定义
- 在一个源文件中,如果出现object与class名称相同的情况,那么就可以将该object成为该class的伴生对象,该class则可以成为该object的伴生类。
- 当一个源文件中,只有object而没有对应的伴生类时,object被称之为Standalone Object-独立对象
使用伴生类或者伴生对象的apply方法
- 示例1
object Test {
def main(args: Array[String]) {
ApplyT()
}
}
class ApplyT {
def apply() {
print("into class apply")
}
}
object ApplyT{
def apply() {
print("into object apply")
}
}
用对象名(),会主动调用object中的apply方法(这是默认的,必须命名为apply),那么如何使用伴生类中的apply方法(伴生对象中的apply方法也是默认的,只能命名为apply)呢,我们知道object关键字在scala中是用来表示单例对象的,也就是说object ApplyT我们不需要new出来就可以直接使用,但是class与java中的class关键字是一致的,我们想要使用通过new关键字获取一个引用使用。
2. 示例2
object Test {
def main(args: Array[String]) {
val a = new ApplyT
a()
}
}
调用伴生类中的apply方法,直接用引用名()即可。
应用-通过伴生对象apply获取伴生类实例
- 示例:
object Test {
def main(args: Array[String]) {
val a = Person("meepoguan",27)
}
}
class Person(val name:String,val age:Int)
object Person{
def apply(name:String,age:Int) {
new Person(name,age)
}
}