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
  }

}

相关文章:

  • 2021-05-07
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2021-10-22
  • 2021-06-12
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-06
  • 2022-12-23
  • 2022-12-23
  • 2022-01-30
  • 2022-02-17
  • 2021-08-21
  • 2022-12-23
相关资源
相似解决方案