微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Scala重写构造函数

package com.wyh.scala.classData

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

    val stu = new Student("张三", 23)

    println(stu)

  }
}

//(_name: String, _age: Int)   认构造函数的参数列表
class Student(_name: String, _age: Int) {

  /**
    * scala认构造函数
    * {}   所有代码都会被执行
    *
    */
  println("认构造函数")


  //定义成员变量
  val name: String = _name

  val age: Int = _age

  //  _   占位符  没有意义
  var gender: String = _

  var clazz: String = _

  /** *
    * 重载构造函数
    *
    */

  def this(_name: String, _age: Int, gender: String) {
    //在重载构造函数第一行需要先调用认构造函数
    this(_name, _age)

    println("重载构造函数")

    //给成员变量赋值
    this.gender = gender

  }

  //多重构造函数

  def this(_name: String, _age: Int, gender: String, clazz: String) {
    //在重载构造函数第一行需要先调用认构造函数
    this(_name, _age, gender)

    println("重载构造函数")

    //给成员变量赋值
    this.clazz = clazz

  }


  /**
    * 重写Object的toString方法
    *
    * 方法没有参数的时候() 可以省略
    *
    **/
  override def toString: String = {

    //当最后一行作为返回值的时候return 可以省略
    //return name + "\t" + age

    name + "\t" + age + "\t" + gender
  }

}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐