scala 随笔(2) scala构造函数 this

来源:互联网 发布:台湾庄园知乎 编辑:程序博客网 时间:2024/05/16 12:47
scala里面的方法定义先于执行体加载,所以下面问题是没有问题的 ,println(f) 先于定义
object Constructor {  class Test{    println(f);    def f = {      "I am here!!!"    }  }  def main(args: Array[String]): Unit = {    new Test;  }}
构造器是构造新的对象,首先初始化类中的定义的变量和方法,然后进入类体,之上往下加载类如:

  1. class Constructor2 {
  2. var x = 0
  3. def f() ={
  4. x=12
  5. }
  6. f()
  7. }
  8. object Constructor2{
  9. def main(args: Array[String]): Unit = {
  10. var constructor2 = new Constructor2
  11. println(constructor2.x)
  12. }
  13. }

辅助构造器 this,通过this 可以重载构造器
  1. package test
  2. class Constructor2(var a:Int,val b:String="tiantian") {
  3. var x = 0
  4. def f() ={
  5. x=12
  6. }
  7. def this(c:Int){
  8. this(c,"tom")
  9. }
  10. }
  11. object Constructor2{
  12. def main(args: Array[String]): Unit = {
  13. var constructor2 = new Constructor2(12)
  14. println(constructor2.a)
  15. println(constructor2.b)
  16. }
  17. }

output:
12
tom

Process finished with exit code 0






原创粉丝点击