scala之伴生对象说明

 

在scala中伴生类和伴生对象一般是同时存在的,特点:一个为class,一个为object, 其名称是相同的。 在伴生类使用静态方法,伴生对象中定义动态方法。

 

 

 

1、 定义伴生类

package cn.qianfeng

object demo5_object {
    def main(args: Array[String]): Unit = {

    }

}

class Tearch(name:String, age:Int, course:String){ // 伴生类
    private val ta = "liming"  //私有成员
    def show(): Unit ={  
        println(s"姓名 = ${name}, 年龄 = ${age}, 课程 = ${course}")
    }
}

object Tearch{  // 伴生对象

}

 

2、编写伴生对象

     在伴生对象中, 使用apply方法将伴生对象进行重写

package cn.qianfeng

object demo5_object {
    def main(args: Array[String]): Unit = {

    }

}

class Tearch(name:String, age:Int, course:String){ // 伴生类
    private val ta = "liming"
    def show(): Unit ={
        println(s"姓名 = ${name}, 年龄 = ${age}, 课程 = ${course}")
    }
}

object Tearch{ // 伴生对象
    def apply(name:String, age:Int): Tearch ={ // 对伴生类的重写,返回Tearch类对象
        val tea = new Tearch(name, age, null)
        println(tea.ta) // 可访问伴生类中的成员
        tea
    }

    def ttt: Unit ={  // 静态方法
        println("三人行")
    }
}

 

 3、调用代码

package cn.qianfeng

object demo5_object {
    def main(args: Array[String]): Unit = {
        val  te = Tearch("kongzhagen", 35)  // 初始化伴生对象
        te.show       // 调用伴生类中的方法
        Tearch.ttt    // 调用伴生对象中的静态方法
    }
}

class Tearch(name:String, age:Int, course:String){ // 伴生类
    private val ta = "liming"
    def show(): Unit ={
        println(s"姓名 = ${name}, 年龄 = ${age}, 课程 = ${course}")
    }
}

object Tearch{ // 伴生对象
    def apply(name:String, age:Int): Tearch ={ // 对伴生类的重构
        val tea = new Tearch(name, age, null)
        println(tea.ta)
        tea

    }

    def ttt: Unit ={
        println("三人行")
    }
}

 

posted on 2021-08-11 13:26  孔扎根  阅读(411)  评论(0编辑  收藏  举报

导航