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("三人行")
        }
    }
  • 相关阅读:
    前端程序员容易忽视的一些基础知识
    一道前端学习题
    Unity调用Windows对话框保存时另存为弹框
    Unity镜子效果的实现(无需镜子Shader)
    Unity射线检测的用法总结
    unity中实现简单对象池,附教程原理
    Unity调用Window提示框Yes/No(英文提示窗)
    Unity调用Windows弹框、提示框(确认与否,中文)
    C#LinQ语法
    服务器的购买与网站的创建
  • 原文地址:https://www.cnblogs.com/kongzhagen/p/15127798.html
Copyright © 2011-2022 走看看