Scala 构造函数
所属分类 scala
浏览量 591
主构造器 辅助构造器
// 主构造器
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 函数式编程