zoukankan      html  css  js  c++  java
  • 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("三人行")
        }
    }
  • 相关阅读:
    JavaBean
    J2EE的13个规范
    IntelliJ IDEA 常用快捷键列表及技巧大全
    服务端工程师入门与进阶 Java 版
    新兵训练营课程——环境与工具Java[转]
    asp.net 局域网中获取 client的机器名
    css 阻止元素中的文本。双击选中
    正则实践
    jq dom不存在时绑定事件
    正则预查
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15127798.html
Copyright © 2011-2022 走看看