Scala样例类及底层实现伴生对象

package com.wyh.day01

/**
  * 样例类的使用
  * 1、使用case修饰类
  * 2、不需要写构造方法,getter,setter方法,toString方法
  * 3、直接通过对象名进行调用
  * 4、自动重写方法
  *
  */
object ScalaApply {
  def main(args: Array[String]): Unit = {

    val animal = Animal("小黄",2)

    println(animal)


    val dog = Dog.apply("大黄",2)
    println(dog)

  }

}

/**
  * 样例类
  */
case class Animal(name:String,age:Int)


/**
  * 解释样例类使用的时候为什么不需要new关键字
  *
  * 伴生对象
  */
class Dog(name:String,age:Int){
  var _name:String = name
  var _age:Int = age

  override def toString: String = _name+"\t"+_age
}

/**
  * 伴生对象
  */
object Dog{

  def apply(name:String,age:Int): Dog = {

    new Dog(name,age)
  }

}
posted @ 2020-01-20 12:45  Xiaohu_BigData  阅读(272)  评论(0编辑  收藏  举报