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("三人行") } }