首页  

Scala 构造函数     所属分类 scala 浏览量 475
主构造器 辅助构造器

// 主构造器
class 类名(形参列表) {  
   // 类体
   def  this(形参列表) {  
     // 辅助构造器1
   }
   def  this(形参列表) {  
     //辅助构造器2 可以有多个
   }
}

import scala.beans.BeanProperty

class Student(val id:Int, val name:String, age :Int, val score:Double, @BeanProperty var info:String) {
  val name2 = name
  var name3 = name

  def this(id:Int,name:String){
    this(id,name,0,0,null)
  }

  def this(id:Int,name:String,age :Int){
    this(id,name,age,0,null)
  }

  override def toString():String = {
    return s"id=$id,name=$name,age=$age,score=$score,info=$info"
  }
}


使用 JD-GUI 反编译 Student.class public class Student { private final int id; private final String name; private final int age; private final double score; private String info; private final String name2; private String name3; public int id() { return this.id; } public String name() { return this.name; }
主构造器的声明直接放在类名后面 主构造器会执行所有的代码,方法定义除外 构造参数 val 只读属性,只生成get 方法 var 读写属性,生成get和set的方法 默认只读 @BeanProperty 生成 java 规范的get和set public void info_$eq(String x$1) { this.info = x$1; } public String getInfo() { return info(); } public void setInfo(String x$1) { info_$eq(x$1); }
完整代码 https://gitee.com/dyyx/hellocode/tree/master/demo/scala/scalademo/src/main/java/demo/Student.scala

上一篇     下一篇
scala 模式匹配

scala Option Some None

scala 类型系统

scala range

Scala 元组

Scala 函数式编程